我很确定这是一个已经回答的问题。我正在阅读很多帖子,但我无法理解。 我试图从数据库中检索标题中包含“art”的所有文章(例如)。 我班上有以下功能:
public function searchArtTitle($art_title_search)
{
if ($this->databaseConnection()) {
$query_art_title = $this->db_connection->prepare('SELECT * FROM articles WHERE art_title LIKE :$artt');
$query_art_title->bindValue(':artt', '%$art_title_search%', PDO::PARAM_STR);
$query_art_title->execute();
else {
echo "DB article title search failed";
return false; }
}
以下是使用该类的代码:
<?php
require_once("../config/config.php");
require_once("get_art.php");
$articles = new get_art();
$search_word = 'Art';
$search_res=$articles->searchArtTitle($search_word);
print_r($search_res2);
foreach($search_res as $search_item) {
echo "<div>";
echo $search_item['art_title'] . "<br>";
echo "</div>";
}
?>
我得到一个空数组,不应该。 我想这里有多个错误...请帮助一个愚蠢的新手:D
答案 0 :(得分:0)
public function searchArtTitle($art_title_search)
{
if ($this->databaseConnection()) {
$query_art_title = $this->db_connection->prepare('SELECT * FROM articles WHERE art_title LIKE :$artt'); **// <- REMOVE THE DOLLAR**
$keyword = "%".$art_title_search."%";
$query_art_title->bindValue(':artt', $keyword, PDO::PARAM_STR);
$query_art_title->execute();
else {
echo "DB article title search failed";
return false; }
}
答案 1 :(得分:0)
不应该是
$query_art_title = $this->db_connection->prepare('SELECT * FROM articles WHERE art_title LIKE :artt');
?没有$
上的:artt