2012-03-16 61 views
1

如何在MySQL中使用WHERE子句的撇号(')?如何使用mysql检查使用where子句的撇号

我已经使用mysql_real_escape_string来消毒输入。

这里是我的MySQL查询的截图和数据库

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

enter image description here

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

enter image description here

任何想法,为什么?

+1

您是否试图阻止SQL注入攻击,或者您只是想知道如何格式化此查询以使其无误地运行? – 2012-03-16 11:06:53

+0

格式化这个查询 – 2012-03-16 11:07:45

回答

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

如果你的内容是\'那么你必须逃离这两个字符:

\ - >\\
' - >''

+0

Null Response当我尝试这个查询 – 2012-03-16 11:11:03

+0

@Samad:查看我的更新 – 2012-03-16 11:15:41

+0

我已经通过这个查询找到了我的数据,但我的Q是如何在字符串中使用php添加这些斜杠 – 2012-03-16 11:18:57

0

单引号可以用自己在MySQL进行转义 - 像这样:

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

Null Response当我尝试这个查询时 – 2012-03-16 11:11:42

+0

@Samad:现在试试 - 表中的实际值是'Amar \'e Stoudemire',而不是'Amar'e Stoudemire'。 – 2012-03-16 11:15:36

1

我发现我的答案thanx的juergen d谁帮我解决这个查询

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

这是串省略号 ,如果你想查询此字符串MySQL查询与where子句所以这里解决方案

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

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

强制mysql_real_escape_string插入 – 2012-03-16 11:48:47