我正在尝试使用 pdo 回显数据库中的最后 10 项。但是我一直收到查询失败的消息。但是,当我在最底部执行代码片段时,我只能获取数据库中的最后一项。
$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 = new PDO('mysql:host='. $host .';dbname='.$db_name_uroll, $db_username, $db_password);
//Remove $db2 prepare
$statement2 = "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.";
}
此代码正在运行。
文档链接:http://www.php.net/pdo.query
使用prepare你必须使用execute方法。
关于php - 使用 pdo 回显 mysql 数据库的最后 10 个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20833514/