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


Switching from MySQL_query to PDO causes unwanted escaping

我最近一直在将所有旧的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之前,这种情况并没有发生。有没有办法在不失去安全感的情况下绕过这一点?

谢谢!

您在服务器上启用了魔术引号,它的PHP文档会告诉您关闭它的各种方法。

关于您的评论:您也可以尝试在主目录中创建一个php.ini文件,其中包含以下内容:

magic_quotes_gpc = off
magic_quotes_runtime = off
magic_quotes_sybase = off

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