2012-03-26 41 views
1

我在mysqli中使用了准备语句,如果我将"放入其中一个参数值中,那么它将转义它并在其之前添加一个反斜杠。我虽然mysqli没有这样做?谢谢。例如:为什么mysqli仍然可以逃脱引号?

$comment = $members->prepare("insert into comments(comment) values(?)"); 
$comment->bind_param('s', $_POST['comment']); 
$comment->execute(); 

放\“\”到数据库中假设注释字段等于“”

+0

你在一个古老的PHP与AUTOMAGIC报价? – 2012-03-26 01:11:50

+0

大声笑的PHP版本是5.2.13和托管人是虚拟的 – 2012-03-26 01:15:22

回答

2

您的服务器上可能有魔术引号。点击这里查看http://php.net/manual/en/security.magicquotes.php以前发生过这种事,非常烦人。

快速查看

if(get_magic_quotes_gpc()) 
     echo "Magic quotes are enabled"; 
    else 
     echo "Magic quotes are disabled"; 
+0

是的,谢谢他们在:(无论如何,我可以把它们关闭?干杯 – 2012-03-26 01:17:28

+0

我想我可以使用stripslashes(),但那样会删除所有用户,好于让他们放在那里 – 2012-03-26 01:28:51

+0

大多数主机帐户都允许你在你的主机帐户的根目录下创建一个php.ini文件,只需要一行'magic_quotes_gpc = Off',如果没有,你可以尝试下面一行。 “htaccess文件 - ”php_flag magic_quotes_gpc关' – nnichols 2012-03-26 01:41:56