gpt4 book ai didi

php - 使用 PDO 和 PHP 搜索数据库,while 语句不显示回显

转载 作者:行者123 更新时间:2023-11-30 21:54:29 26 4
gpt4 key购买 nike

我正在使用 PDO 向我的网站添加搜索输入和按钮,我的 else 语句有效但我收到“无结果”。但是我的 while 声明似乎没有回应。我是否遗漏了什么或我的代码中写错了什么?

if(isset($_POST['submit'])){
$search = $_POST['search'];
$articles = $db->prepare("SELECT * FROM articles WHERE headline = :search");
$articles->execute(array(':search' => $search));

if($articles -> rowCount() > 0) {
while ($rows = $articles->fetchAll(PDO::FETCH_ASSOC)){
$headline = $rows['headline'];
echo "headline: $headline<br>";
}
} else{
echo "No Results";
}
}

最佳答案

您使用了错误的获取方法。

while ($rows = $articles->fetchAll(PDO::FETCH_ASSOC)) { ...

fetchAll 获取所有 行。所以 $rows 是一组行,而不是一行。因此循环只会执行一次,$rows['headline']; 将不存在。

只需使用 fetch 而不是 fetchAll

或者,如果您仍想使用 fetchAll,您可以调用它一次,然后使用 foreach 循环迭代结果。

$rows = $articles->fetchAll(PDO::FETCH_ASSOC);
foreach ($rows as $row) {
$headline = $row['headline'];
echo "headline: $headline<br>";
}

任何一种方式都应该是一样的。


您应该设置错误报告以在您的开发服务器上显示警告和通知,这样 PHP 就可以通知您此类问题。 ($rows['headline'] 会生成 undefined index 通知。)

关于php - 使用 PDO 和 PHP 搜索数据库,while 语句不显示回显,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45841554/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com