MySQL查询中的整数比较无法正常工作?

时间:2013-01-08 19:56:50

标签: php mysql

我在MySQL查询中比较两个整数时遇到了问题,但是找不到任何结果但应该是。我正在使用的查询:

"SELECT * FROM users 
WHERE var1 = '" . $variable1 . "' 
AND var2 = '" . $variable2 . "' 
AND var3 = 3"

如果我遗漏AND var3 = 3位,它可以正常工作,但是如果没有,它将不会返回任何结果。

在数据库中,var3存储为tinyint,目前每个用户的值为3,以便进行测试。这里有什么我想念的吗?非常感谢任何帮助。

克里斯

2 个答案:

答案 0 :(得分:2)

您应该使用PDO或mysqli,以便绑定参数并避免注入。在我看来,它也使阅读更容易。

$sql = 'SELECT * FROM users 
       WHERE var1 = ? 
       AND var2 = ?
       AND var3 = 3';
$sth = $dbh->prepare($sql);
$sth->execute(array($variable1, $variable2));

这也避免了在整数值中添加单引号的错误,这是您在自己的整数值中所做的。

答案 1 :(得分:0)

关于你的var1和var2,如果它们是string或int

在您的php文件中

尝试让$variable1$variable1integers

像那样

          $variable1 = INTVAL($variable1) ;
          $variable2 = INTVAL($variable2) ;

并在您的查询中执行此操作

   "SELECT * FROM users 
   WHERE var1 = $variable1
     AND var2 = $variable2 
   AND var3 = 3"

然后它将在你的sql中运行