【发布时间】:2013-12-31 21:37:00
【问题描述】:
我正在尝试使用 pdo 回显我的数据库中的最后 10 个项目。但是我不断收到查询失败。但是,当我在最底部执行代码 sn-p 时,我只能得到数据库中的最后一项。
$db2 = new PDO('mysql:host='. $host .';dbname='.$db_name_uroll, $db_username, $db_password);
$statement2 = $db2->prepare("select * from `{$user}` ORDER BY bet_id DESC LIMIT 2");
if ($stmt = $db2->query($statement2)) //PDO::query() returns a PDOStatement on success or false on failure.
{
//If we got a PDOStatement as a return value from PDO::Query() !!!ECHO WHILE FETCHING!!!
while($row2 = $stmt->fetch(PDO::FETCH_ASSOC)) //This loop will keep going for as many rows as the PDOStatement returns.
{
echo $row2['roll'] . "<br />";
}
}
else
{
//If PDO::Query returned false, then something is wrong with our query. Or connection or whatever.
echo "Query failed.";
}
但是当我在下面执行此操作时,它会起作用,但只会打印出最后一项
$row2 = $statement2->fetch();
echo $row2[roll];
【问题讨论】:
-
如果你正在准备你的语句,你应该使用
db2->execute(),而不是db2->query(),但由于你实际上并没有绑定任何变量,你可以将你的查询字符串输入db2->query()。我认为您需要阅读更多关于 PDO 和准备好的陈述的内容。 -
您想
echo the last 10,但您的查询中有LIMIT 2? -
@Sean 我打算做 10 我只是放了 2 来测试一些东西