Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用mysql检查带where子句的撇号_Php_Mysql_Sql_Mysqli - Fatal编程技术网

Php 如何使用mysql检查带where子句的撇号

Php 如何使用mysql检查带where子句的撇号,php,mysql,sql,mysqli,Php,Mysql,Sql,Mysqli,MySQL中WHERE子句如何使用撇号 我已经使用mysql\u real\u escape\u字符串对输入进行了清理 这是我的mySQL查询和数据库的截图 SELECT * FROM players WHERE `name` = 'Amar'e Stoudemire' 执行此查询将生成以下错误: 知道为什么吗?单引号可以在MySQL中自行转义,就像这样: SELECT * FROM players WHERE `name` = 'Amar\''e Stoudemire' 单引号可以在MyS

MySQL中WHERE子句如何使用撇号

我已经使用mysql\u real\u escape\u字符串对输入进行了清理

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

SELECT * FROM players WHERE `name` = 'Amar'e Stoudemire'
执行此查询将生成以下错误:


知道为什么吗?

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

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

单引号可以在MySQL中自行转义-如下所示:

SELECT * FROM players WHERE `name` = 'Amar\''e Stoudemire'
如果单元格内容为\,则必须转义这两个字符:

\->\\ “->

如果单元格内容为\,则必须转义这两个字符:

\->\\
“->

我为帮助我解决这个问题的juergen d找到了答案

<?php 
$name = "Amar'e Stoudemire";
?>
这是带撇号的字符串 如果您想在mysql查询中用where子句检查这个字符串,那么下面是解决方案

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

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

我找到了juergen d的答案,他帮我解决了这个问题

<?php 
$name = "Amar'e Stoudemire";
?>
这是带撇号的字符串 如果您想在mysql查询中用where子句检查这个字符串,那么下面是解决方案

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

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

您是在试图防止SQL注入攻击,还是只是想知道如何格式化此查询,使其运行时不会出错?您是在试图防止SQL注入攻击,或者您只是想知道如何格式化此查询,使其运行时不会出现错误?尝试此查询时响应为空我已通过此查询找到数据,但我的问题是如何使用php@Samad:在执行查询之前,您可以使用str\u replace将所有“\”和“翻倍”。@Samad:实际上您正在使用mysql\u real\u escape\u字符串,应该可以使用。我想你真正的问题是你手机的内容不是。。。但是…\'。。。。不知怎的,一根逃脱的绳子进入了你的牢房。也许你可以解决这个问题。当我尝试这个查询时,juergen会在下面的完整响应中看到我的答案。我已经通过这个查询找到了我的数据,但我的问题是如何使用php@Samad:在执行查询之前,您可以使用str\u replace将所有“\”和“翻倍”。@Samad:实际上您使用的是mysql\u real\u escape\u字符串,应该可以使用。我想你真正的问题是你手机的内容不是。。。但是…\'。。。。不知怎的,一根逃脱的绳子进入了你的牢房。也许你能解决这个问题。当我尝试这个时,juergen会在下面看到我的答案query@Samad:Try now-表中的实际值是Amar'e Stoudemire,而不是Amar'e Stoudemire.Null响应query@Samad:立即尝试-表中的实际值为Amar逖e Stoudemire,非Amar'e Stoudemire.importional mysql\u real\u escape\u字符串用于插入mpulsory mysql\u real\u escape\u字符串用于插入