愚蠢的问题,但是想不出答案,我已经使用了addslashes和removedlashes将数据添加到我的mysql中,但是当检索它时也只删除了那些不是由函数生成的普通\,是否有更好的方法不使用str_replace做到这一点?
答案 0 :(得分:2)
要将参数传递给数据库,有mysql_real_escape_string()
用于mysql_ *和mysqli_ *,以及bindParam用于PDO。
此外,当您将其放在SQL查询中时,例如:Hello\/World
,只有Hello/World
将被传递到数据库,而不是用于转义\
的{{1}}
/
http://php.net/manual/en/pdostatement.bindparam.php
PDO->bindParam()
:http://php.net/manual/en/function.mysql-real-escape-string.php
答案 1 :(得分:-1)
反斜杠转义用于使字符串有效地通过SQL解析器传递。数据库不会存储这些反斜杠。再次查询数据库时,不会返回它们。
顺便说一句,What'ever
的正确转义不是'What\'ever'
而是'What''ever'
。只有在MySQL服务器处于向后兼容模式时,才能在输入字符串上使用addslashes()
。