我一直在搞乱我的搜索页面。我加了mysqli_real_escape_string
和strip_tags
,据我所知,一切正常,应该是安全的。在搜索字段中输入单引号导致mysqli_num_rows错误
我只是试图在搜索表单中输入随机符号,以查看是否所有数据库条目都可以在这些安全措施的适当位置找到。除了当我搜索单引号('
)时,所有的都不错。
这给了我“mysqli_num_rows()期望参数1为mysqli_result,布尔给定”错误。有很多关于这个错误的信息,我知道如何解决它(至少我是这么认为的)。然而,在这种特定的情况下,我不知道:/
代码:
ini_set('display_errors', 1);
$search = $_GET ['q'];
$conn = mysqli_connect("localhost", "root", "","release");
$search = mysqli_real_escape_string($conn, "$search");
$search = stripslashes(strip_tags(trim("$search")));
$query = mysqli_query($conn,"SELECT * FROM game WHERE game_name LIKE '%". $search ."%' ORDER BY game_release");
$count = mysqli_num_rows($query);
您必须使用绑定参数机制。 它显示在这里: http://stackoverflow.com/questions/15748254/how-to-run-the-bind-param-statement-in-php –
@KanchoIliev你应该,但你没有至。 – jeroen
是的,你说得对,对不起。 –