【发布时间】:2015-09-02 03:20:02
【问题描述】:
我正在尝试根据来自表单的字符串过滤结果。这是我的代码。
<?php
$query = $_GET['query']; // gets the string entered from the form.
$userSearch = $db->prepare("SELECT id, user_id, feedback FROM `QComments`
WHERE `feedback`
LIKE '%$query%'
ORDER BY user_id");
$userSearch->execute();
$userSearchResult = $userSearch->fetchAll(PDO::FETCH_ASSOC);
?>
<?php // Display search result
foreach ($userSearchResult as $result1){
echo $result1['feedback'];
}
?>
无论我输入什么字符串,这基本上都会显示数据库中的所有记录。
但是当我在 PHPMYAdmin SQL 框中输入这个 MySQL 语句时
SELECT id, user_id, feedback FROM `QComments`
WHERE `feedback`
LIKE '%suggestion%'
ORDER BY user_id
我只得到具有建议关键字的结果。但是 PHP 显示了一切。我的代码有什么问题?请给我建议。
【问题讨论】:
-
如果您回显
$query,它的值是否正确?你没有正确使用准备好的语句,php.net/manual/en/pdo.prepared-statements.php。 -
首先检查你的prepare正在准备什么......你想要什么查询或者喜欢'%%'......