我一直在浏览一堆主题,但还没有找到任何有用的东西——或者它可能确实有效,但我对 PHP/MySQL 还是很陌生,所以也许我只是错过了一些东西。
我有一个页面,允许用户输入项目的名称以在(MySQL)数据库中查找它。然后它会生成一个结果表并显示这些结果,并将一些数据转换为链接。然后将链接的术语用作查询以搜索数据库的其他字段。
一切正常……除非其中一个搜索词包含撇号。显然我想防止注入问题,但我也需要用撇号进行搜索。这是我的代码:
$query = mysql_real_escape_string($query);
$query = htmlspecialchars($query);
$queryentered = $query;
$query = strtolower($query);
这是它传递给查询的 URL:
echo " from <a href='index.php?volume=".$results2['book']."' class='where'>"
.$results2['book']."</a>";
和查询:
$raw_results = mysql_query("SELECT * FROM $database1 WHERE $wh LIKE '%$query%'
ORDER BY displayname") or die(mysql_error());
我编码不正确是什么?当我运行搜索时,它显示“未找到 [搜索词] 的结果”,其中我得到了任何撇号的 \'。