Nul*_*ion -2 php mysql sql mysql-error-1064
我想用他们的全名"blo"来记录所有用户,例如:"Pablo"
我用userPHP参数传递"blo" 参数:
$q=mysql_query("select * From user Where fullName Like '%'".$_REQUEST['user']."'%'",$link );
Run Code Online (Sandbox Code Playgroud)
在php SQL语句中有些错误,因为当我在我的SQL数据库上尝试带有参数"blo"的句子时,我看到SQL语句是正确的,因为它返回了正确的结果,这是带有参数的句子"在它上面: select * From user Where fullName Like "%blo%"
我确定PHP正确接收"blo"参数,然后,它必须是PHP上SQL语句的sintax错误....但我找不到它
编辑:好的!! 最后一句话已经解决,但现在我有这个新句子有同样的问题,它有一个错误,但我不知道在哪里
$query = sprintf("SELECT u.*
FROM USER u
WHERE u.fullName LIKE '%%%s%%' AND email NOT IN (select pp.fk_email2 from permission pp where pp.fk_email1='".mysql_escape($_REQUEST['mymail'])."') AND email NOT LIKE '".mysql_escape($_REQUEST['mymail'])."' ",
mysql_real_escape_string($_REQUEST['user']));
Run Code Online (Sandbox Code Playgroud)
SQL需要单引号来指示要进行比较的字符串,并且通配符(%)必须包含在这些单引号内.双引号仅用于列和表别名,如果有的话.
$query = sprintf("SELECT u.*
FROM USER u
WHERE u.fullName LIKE '%%%s%%'",
mysql_real_escape_string($_REQUEST['user']));
$q = mysql_query($query, $link);
Run Code Online (Sandbox Code Playgroud)
其次,通过不清理用户请求变量,您将面临SQL注入攻击.在处理提交给MySQL数据库的字符串时,始终使用mysql_real_escape_string.
| 归档时间: |
|
| 查看次数: |
227 次 |
| 最近记录: |