首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >现在,mysql_real_escape_string()转义了单引号和双引号

现在,mysql_real_escape_string()转义了单引号和双引号
EN

Stack Overflow用户
提问于 2010-08-26 22:13:38
回答 2查看 3.4K关注 0票数 3
代码语言:javascript
复制
$str = 'BEGIN This is a "quote" test. \'Single\' END';
echo $str . "\n";
echo mysql_real_escape_string($str);

// Outputs:
BEGIN This is a "quote" test. 'Single' END
BEGIN This is a \"quote\" test. \'Single\' END

在CentOS上运行PHP5.3.2。据我所知,mysql_real_escape_string()只会转义单引号以防止注入。双引号与此无关,因为"不会在MySQL中开始或结束字符串文字!

这会导致在数据中插入反斜杠!一些我显然不想要的东西。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-26 22:14:54

在MySQL中,"会启动一个字符串。(请参阅:Strings)

例外:

如果启用了ANSI_QUOTES SQL模式,则字符串文字只能用单引号引起来,因为用双引号引起来的字符串将被解释为标识符。

票数 3
EN

Stack Overflow用户

发布于 2010-08-26 23:56:08

听起来像是魔术引语被打开了。

这篇文章详细描述了你的问题,以及修复方法。http://www.sitepoint.com/forums/showthread.php?t=545824

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3575969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档