我花了太多时间处理这个足够简单的问题,当我在它返回的函数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!";
}
}
}
答案 0 :(得分:0)
尝试在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_title
和article_content
,然后使用以下方式获取计数:
if($sth->rowCount() > 0)