【发布时间】:2021-01-15 22:04:48
【问题描述】:
<?php
include('blog/includes/config.php'); //assuming $db is a database connection, quries can be done
using $db->query()
//Post search words
$search = $_GET['search'];
// remove any code from the search term
$search = strip_tags($search);
//No keywords entered.
if ($search == "") {
echo "<p>Opps! You forgot to enter a search term.</p>";
} else {
// perform the search
$result = $db->query("SELECT * FROM blog_posts_seo WHERE MATCH(postTitle) AGAINST(':search*' IN
BOOLEAN MODE), ['search' => $search]");
echo "<h3>Search Results</h3>";
echo "<p>you searched for <b>$search</b> there are ".count($results)." matches.</p>";
foreach($results as $row) {
echo "<h1>$row->postTitle</h1>";
echo "<p>$row->desc</p>";
} // close while loop
} // close else
?>
<form action="search.php" method="get">
<input name="search" type="text" size="20" />
<input type="submit" name="submit" value="Search" />
</form>
当我在输入字段中搜索时,它会显示以下消息: 致命错误:未捕获的 PDOException:SQLSTATE [42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在 /home/takashop/domains/takashop.ir/public_html/search.php:16 的第 1 行的“['search' => پوست]' 附近使用正确的语法跟踪:#0 /home/takashop/domains/takashop.ir/public_html/search.php(16): PDO->query('SELECT * FROM b...') #1 {main} 抛出 /home/takashop /domains/takashop.ir/public_html/search.php 第 16 行
【问题讨论】:
-
嗯,这是准备好的陈述的良好开端。只是缺少一些陈述。您使用的是 pdo 还是 msqli?
-
您需要在查询中用引号将
$search括起来。从值返回的字符串没有它。 -
嗨,谢谢我使用 pdo