我正在创建一个简单的SQL搜索,按关键字搜索字词。只有,我必须输入完整的关键字阶段才能显示结果。
的index.php
$term = $_GET['q'];
$term = strip_tags($term);
$term = mysql_real_escape_string($term);
require_once("<PATHTOFILE>\\dbconnect.php");
$sql = "SELECT * FROM Search WHERE Keywords LIKE '{$term}' LIMIT 15";
$result = mysqli_query($con, $sql) or die("couldn't apply search");
<h1>Results for '<?php echo $term; ?>'</h1>
<br>
<ul>
<?php
if($count = mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
?>
<li><?php echo $row['Title']; ?></li>
<?php
}
}
if($count = mysqli_num_rows($result) == 0) {
?>No Results.<?php
}
?>
</ul>
sql表结构:
任何想法都错了吗?
答案 0 :(得分:3)
首先,您将MySQL API与mysql_real_escape_string()
混合。
该函数不与mysqli_
函数混合。
您需要在连接后使用mysqli_real_escape_string($con,$term);
。
与Lashane在评论中所述的'%{$term}%'
一起。