【发布时间】:2013-07-14 21:26:29
【问题描述】:
我将 PDO 用于 pgsql 数据库。查询不起作用。我想问题出在我进行查询的逗号上。类似的查询可以直接在 pgAdminIII 中正常工作。我尝试了形成此查询的不同变体,但结果是相同的“未找到”。
// Get Search
$search_string = preg_replace("/[^A-Za-z0-9]/", " ", $_POST['query']);
$search_string = $conn->quote($search_string);
echo $search_string;
$s1 = '%'.$search_string.'%';
// Check Length More Than One Character
if (strlen($search_string) >= 1 && $search_string !== ' ') {
// query
$query = $conn->prepare('SELECT title FROM book WHERE author LIKE ?');
$query->bindValue(1, '\'$s1\'', PDO::PARAM_STR);
$query->execute();
if (!$query->rowCount() == 0) {
while ($results = $query->fetch()) {
echo $results['title'] . "<br />\n";
}
} else {
echo 'Nothing found';
};
【问题讨论】:
-
'\'$s1\''- 这是干什么用的?您需要阅读如何正确绑定准备好的语句 -
这是多种变体之一。我想搜索这个字符串 $s1。我试过了,只有
$s1,'$s1'。 -
我屏蔽引号,因为我想用 LIKE 像这样
LIKE '%$search_string%'进行查询 -
不要“尝试”“变体”。 完全按照您在准备好的语句教程中阅读的内容进行操作。
标签: pdo parameters sql-like