我最近将所有旧的mysql_query调用切换到PDO。我遇到了mysql_query配置中没有的问题。当我尝试使用引号将变量输入到数据库时,它在我的数据库中显示为转义。我在php.ini文件中禁用了魔术引号。
$myString = "Enter 'one' now";
$sql=$pdo->prepare("UPDATE $tbl_name SET string=:myString WHERE etc...);
$sql->execute(array(':myString' => $myString));
此更新
Enter \'one\' now
我需要的是
Enter 'one' now
在我切换到PDO之前没有发生这种情况。有没有办法解决这个问题而不会失去安全性?
谢谢!
答案 0 :(得分:3)
您的服务器已启用magic quotes,PHP documentation会为您提供各种关闭它的方法。
关于您的评论:您还可以尝试使用以下内容在主目录中创建php.ini
文件:
magic_quotes_gpc = off
magic_quotes_runtime = off
magic_quotes_sybase = off
如果不起作用,请与您的主机联系以解决问题。