将整数指定为变量

use*_*645 2 php mysql

我知道的通用主题.很难在一个主题中具体化.无论如何我对这个sql逻辑有问题:

"SELECT * FROM imagecomment WHERE filename = :filename ORDER BY comment_timestamp DESC LIMIT '$min', '$max'";
Run Code Online (Sandbox Code Playgroud)

当我尝试相同的逻辑但直接在sql逻辑中使用整数时,它可以工作.变量min和max是整数:

int(10)int(20)我在var_dump()时得到这个.我也尝试将变量(我通常这样做)绑定到变量(),但它仍然无效.

小智 5

你在PDOStatement中使用它,对吧?(因为你正在使用:filename)

$db = new PDO(); //assume you have this set

$stmt = $db->prepare(
         "SELECT * 
          FROM imagecomment 
          WHERE filename = :filename 
          ORDER BY comment_timestamp 
          DESC LIMIT :min, :max";

$stmt->bindValue(':filename', $filename);
$stmt->bindValue(':min', $min);
$stmt->bindValue(':max', $max);

$stmt->execute();
Run Code Online (Sandbox Code Playgroud)

$db = new PDO(); //assume you have this set

$stmt = $db->prepare(
         "SELECT * 
          FROM imagecomment 
          WHERE filename = :filename 
          ORDER BY comment_timestamp 
          DESC LIMIT :min, :max";

$stmt->bindValue(':filename', $filename);
$stmt->bindValue(':min', $min);
$stmt->bindValue(':max', $max);

$stmt->execute();
Run Code Online (Sandbox Code Playgroud)

并且您应该能够获取结果,如果这不起作用,请告诉我您从PDOStatement获得的错误.