-1

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

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

如果我省略了该AND var3 = 3位,它可以正常工作,但是使用它,它不会返回任何结果。

在数据库中,var3存储为tinyint,并且当前每个用户的值为 3 用于测试目的。我在这里缺少什么吗?任何帮助是极大的赞赏。

克里斯

4

2 回答 2

2

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

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

这也避免了像在你的整数值中添加单引号这样的错误。

于 2013-01-08T20:10:06.707 回答
0

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

在你的 php 文件中尝试让$variable1$variable1喜欢integers

像那样

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

并且在您的查询中这样做

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

然后它将在您的sql中工作

于 2013-01-08T20:05:59.537 回答