我应该如何在单引号中添加斜线并忽略双引号? 我正在使用PHP。我只想逃避单引号以防止我的php mysql查询中断。
谢谢!
编辑: 我认为正则表达式搜索和替换将是最有帮助的。
答案 0 :(得分:13)
好的,这个帖子真的很晚,但是添加了这个答案,希望它可以帮助有人登陆这个问题。虽然@Weston C已经提供了一个正则表达式解决方案,但是有一个用于执行此操作的php函数 - addcslashes(http://php.net/manual/en/function.addcslashes.php):
string addcslashes ( string $str , string $charlist )
Returns a string with backslashes before characters that are listed in charlist parameter.
答案 1 :(得分:4)
使用mysql_real_escape_string
。关于MySQL连接的字符编码,它只会逃避所需的字符。
答案 2 :(得分:4)
一个简单的str_replace("'", "\\'", $string)
应该有效。但正如Gumbo所述,如果你试图逃避MySQL查询,你应该使用库函数。
答案 3 :(得分:2)
好吧,preg_replace_all("/([^\])'/","$1\'",$yourStrHere)
会做你所要求的:
但是...
比尔关于使用mysqli或PDO API进行参数化查询的答案确实是非常好的建议。让你的数据库API处理这个比自己做更容易和更有效 - 编写这些API的人(以及那些为这些API工作的本地后端的人)可能花费更多的时间和精力来解决安全问题。性能问题比我们大多数人都希望自己花光。
答案 4 :(得分:1)