-1

クエリで2 つの整数を比較する際に問題が発生しまし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

string または int の場合、var1 と var2 について

あなたのphpファイルでlet$variable1$variable1likeを試してみてください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 に答える