从MySQL_query切换到PDO会导致不必要的转义

时间:2013-08-14 22:38:58

标签: php mysql pdo

我最近将所有旧的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之前没有发生这种情况。有没有办法解决这个问题而不会失去安全性?

谢谢!

1 个答案:

答案 0 :(得分:3)

您的服务器已启用magic quotesPHP documentation会为您提供各种关闭它的方法。

关于您的评论:您还可以尝试使用以下内容在主目录中创建php.ini文件:

magic_quotes_gpc = off
magic_quotes_runtime = off
magic_quotes_sybase = off

如果不起作用,请与您的主机联系以解决问题。