<?php
try
{
$db = new PDO("mysql:host=localhost;dbname=DBNAME", "USER", "PASSWD");
$stmt = $db->prepare("SELECT id, name FROM testdb ORDER BY time DESC LIMIT :index, 10");
$stmt->bindValue(":index", $_GET['index'], PDO::PARAM_INT);
$stmt->execute();
while($r = $stmt->fetch(PDO::FETCH_ASSOC))
{
echo var_dump($r);
}
}
catch(PDOException $e)
{
die("Exception");
}
的问题是在这条线:$stmt->bindValue(":index", $_GET['index'], PDO::PARAM_INT);
PHP PDO bindValue()不工作
和具体参数是第二个。
上面的代码不起作用,它不返回任何内容,所以while循环没有执行。如果我用一个数字替换$ _GET ['index'],比如10,那么它工作得很好,它会返回10行。回声$ _GET ['index']显示一个数字,所以它应该传递一个数字。我也试过bindParam,但结果是一样的。
为什么不能正常工作?
编辑:
有趣的......如果我更换$_GET['index'] with (int)$_GET['index']
它的工作原理。
page.php?index = 10给出字符串(2)“10”。 – TheMagician 2010-04-24 19:18:03