使用 mysql_real_escape_string 时添加转义字符
我在所有查询中都使用 mysql_real_escape_string 。未使用 addslashes
,但是每次使用 '
时,它都会在输出中转义 - 就像它被 mysql_real_escape_string
转义一样然后再次通过某种 PHP 设置。
有谁知道会导致这种情况的任何设置,使用 mysql_real_escape_string 然后使用 stripslashes 很痛苦吗?
I am using mysql_real_escape_string
on all of my queries. addslashes
is not being used, however every time a '
is used it is escaped on the output - it is like it is being escaped by mysql_real_escape_string
and then again by a PHP setting of some kind.
Is anyone aware of any setting that would cause this, it is a pain to use mysql_real_escape_string
and then stripslashes
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先确保 php.ini 中的
magic_quotes_gpc=Off
。这会导致您添加斜杠两次,这会导致插入数据库的数据出现问题。另外,您不应该在输出数据上使用 mysql_real_escape_string 或添加斜杠。仅适用于查询中使用的变量,因为它可以防止 SQL 注入。
阻止 sql 注入的更好方法是使用带有 PDO、ADODB 或 MySQLi 的参数化查询。
First of all make sure
magic_quotes_gpc=Off
in you php.ini. This would cause you to addslashes twice which would cause problems for data inserted into the db.Also you should not be using mysql_real_escape_string or addslashes on output'ed data. Only on variables being used in query because it prevents SQL Injection.
A better way to stop sql injection is to use parameterized quires with PDO, ADODB or MySQLi.