MySQL LIKE查询不适用于带有撇号的搜索记录

时间:2014-03-19 11:27:34

标签: php mysql

当我开始从db中搜索记录时,当撇号出现在单词中时出现了问题 为此,我使用了addslashes,mysql_real_escape_strin,但没有使用它

<?php
    include("lib/dbconn.php");
    $list_query_main1="select * from table where name like '%".mysql_real_escape_string($_REQUEST['keyword'])."%'";
   $list=mysql_query($list_query_main1);
   echo mysql_num_rows($list);
?>

找到零结果,但DB中的名称为我提供了解决方案。

2 个答案:

答案 0 :(得分:1)

你得到mysql错误

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'table' at line 1

因为TABLE是保留字。如果您将表命名为TABLE,则必须使用正确的mysql语法

$list_query_main1="select * from `table` where `name` like '%".mysql_real_escape_string($_REQUEST['keyword'])."%'";

答案 1 :(得分:0)

if(!$list || mysql_errno() != 0) echo mysql_error();行之后添加$list=mysql_query($list_query_main1);会在查询失败时为您提供一些信息

否则不推荐使用myqsl_ *,你应该开始使用mysqli_ *函数。

并改变你的最后一行

echo $mysql_num_rows($list);

并将其替换为

echo mysql_num_rows($list);

如果你想调用myqsl_num_rows()函数