如何使用mysql检查带有where子句的Apostrophe

时间:2012-03-16 11:05:06

标签: php mysql sql mysqli

撇号(')如何与MySQL中的WHERE子句一起使用?

我已经使用mysql_real_escape_string来清理输入。

以下是mySQL查询和数据库的截图

SELECT * FROM players WHERE `name` = 'Amar'e Stoudemire'

enter image description here

执行此查询会生成以下错误:

enter image description here

知道为什么吗?

3 个答案:

答案 0 :(得分:5)

SELECT * FROM players WHERE `name` = 'Amar\\''e Stoudemire'

如果您的手机内容为\',那么您必须同时转义这两个字符:

\ - > \\
' - > ''

答案 1 :(得分:1)

我找到了帮助我解决此问题的juergen d的答案。\ n \ n

<?php 
$name = "Amar'e Stoudemire";
?>

这是撇号的字符串 如果你想在mysql Query中用where子句检查这个字符串,那么这里就是解决方案

<?php 
$name = addslashes(addslashes($name));
/*Amar\\\'e Stoudemire*/
?> 

SELECT * FROM players WHERE `name` = "'.$name.'"

答案 2 :(得分:0)

单引号可以在MySQL中自行转义 - 就像这样:

SELECT * FROM players WHERE `name` = 'Amar\''e Stoudemire'