PHP PDO查询未执行

时间:2017-09-15 12:25:27

标签: php mysql sql pdo

我正在尝试为我的数据库构建搜索功能,但它没有返回任何结果。这就是我得到的:

$searchQuery = $_GET[q];
$search = $conn->prepare('SELECT * FROM articles WHERE title LIKE \'%:query%\' OR content LIKE \'%:query%\'');
$search->bindParam(':query', $searchQuery, PDO::PARAM_STR);

$search->execute();
$searchResult = $search->fetchAll();

foreach($searchResult as $row) {
    print "<h2><a href=\"view.php?a=" . $row[id] . "\">" . $row[title] . "</a></h2>";
}

当我直接用$conn->query('SELECT...')执行SQL语句时,它可以很好地工作,但不能使用准备好的语句。我没有收到错误,它只是没有加载任何结果。我错过了什么?

编辑:将通配符从预处理语句移动到绑定变量,如下所示:

$searchQuery = '%' . $_GET[q] . '%';
$search = $conn->prepare('SELECT * FROM articles WHERE title LIKE :query OR content LIKE :query');

现在完美运作。谢谢!

0 个答案:

没有答案