gpt4 book ai didi

php - MySQL 查询没有返回数据(var_dump = NULL),为什么?

转载 作者:行者123 更新时间:2023-11-30 00:33:42 24 4
gpt4 key购买 nike

我在这个简单的问题上花了太多时间,当我在它返回的函数上使用 var_dump 时,我无法理解到底发生了什么,它会返回任何数据NULL。确切地说,它返回“无结果”,因为我将其设置为如果没有任何要检索的数据,只是数据库已满数据,但它没有检索,任何人都可以看到问题所在我不能..我什至之前在这里尝试过,但一无所获。

这是函数..

public function search()
{
if(isset($_GET['search']))
{
$searchTerms = trim(strip_tags($_GET['search']));

$sth = $this->db->prepare(
"SELECT COUNT(*)
FROM articles
WHERE (article_content LIKE :search1)
OR (article_title LIKE :search2)"
);

$sth->execute(
array(
':search1' => '%' . $searchTerms . '%',
':search2' => '%' . $searchTerms . '%'
)
);

if($sth->fetchColumn() > 0)
{
while($row = $sth->fetchAll())
{
return "search results: ".$row['article_title'];
return "".$row['article_content'];
}
} else {
echo "No results!";
}
}
}

最佳答案

尝试在 SQL 中使用别名:

$sth = $this->db->prepare(
"SELECT COUNT(*) AS RESULT_COUNT
FROM articles
WHERE (article_content LIKE :search1)
OR (article_title LIKE :search2)"
);

并使用 $row['RESULT_COUNT'] 获取计数

然后为结果创建一个单独的查询,例如:

$sth = $this->db->prepare(
"SELECT article_title, article_content
FROM articles
WHERE (article_content LIKE :search1)
OR (article_title LIKE :search2)"
);

另一方面,了解您想要实现的目标,您可以单独使用第二个查询来获取 article_titlearticle_content,然后使用以下方法获取计数:

if($sth->rowCount() > 0)

关于php - MySQL 查询没有返回数据(var_dump = NULL),为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22340143/

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