在MySQL和PHP中插入带撇号的记录

时间:2013-08-16 15:05:17

标签: php mysql string

这不起作用,我尝试过很多东西。 htaccess文件指定魔术关闭。下面的代码缩写为quickness。

这是我的PHP:

$name=mysql_real_escape_string($_POST['textfield']['name']);

这是我的SQL命令:

$sql="INSERT INTO tblmentors (name) VALUES ('$name')
mysql_query($sql) or die (mysql_error());

如果文本字段中有撇号,则会存储斜杠并将所有内容搞砸。

2 个答案:

答案 0 :(得分:3)

有一些"魔法消毒"在您的应用程序中用于"清理"用户输入。
完全没用,它也会破坏你的数据。

你必须找到并摆脱它。

仔细检查魔法引号。在现代服务器上.htaccess只是不起作用。

你必须转向准备好的陈述而不是手动转义。

答案 1 :(得分:0)

您可以尝试disable magic quotes

如果失败,请尝试:

// I prefer to stripslashes() then mysql_real_escape_string().
// If you want, just skip it and do mysql_real_escape_string inside the else part.

if (function_exists ('get_magic_quotes_gpc') && get_magic_quotes_gpc())
{
   $tmp = stripslashes ($_POST['textfield']['name']);
}
else
{
   $tmp = $_POST['textfield']['name'];
}

$name = mysql_real_escape_string ($tmp);
$sql = "INSERT INTO tblmentors (name) VALUES ('{$name}')";
mysql_query ($sql) or die (mysql_error ());