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

在MySQL和PHP中插入带撇号的记录,php,mysql,string,Php,Mysql,String,这不起作用,我试过很多东西。htaccess文件指定magic off。下面的代码是为了快速而缩写的 以下是我的PHP: $name=mysql_real_escape_string($_POST['textfield']['name']); 下面是我的SQL命令: $sql="INSERT INTO tblmentors (name) VALUES ('$name') mysql_query($sql) or die (mysql_error()); 如果表单文本字段中有撇号,斜杠会被存储

这不起作用,我试过很多东西。htaccess文件指定magic off。下面的代码是为了快速而缩写的

以下是我的PHP:

$name=mysql_real_escape_string($_POST['textfield']['name']);
下面是我的SQL命令:

$sql="INSERT INTO tblmentors (name) VALUES ('$name')
mysql_query($sql) or die (mysql_error());
如果表单文本字段中有撇号,斜杠会被存储起来,并且会把所有内容都搞乱。

应用程序中使用了一些“神奇的消毒”功能来“清理”用户输入。
由于完全没有用,它也会破坏您的数据

你必须找到并摆脱它

再次检查魔术引号。在现代服务器上,
.htaccess
根本不起作用

当然,你必须朝着预先准备好的语句而不是手动转义的方向前进。

你可以尝试

如果失败,请尝试以下操作:

// 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 ());

检查“无论您在何处找到它,都用\”替换它,然后在您使用MySQLi或PDO绑定变量时插入(这是2013年,而不是2003年);那么这就不是一个issuery
strip\u slashes()
警告:mysql扩展从PHP5.5.0开始就被弃用了,将来将被删除。相反,应该使用or扩展。请不要使用
mysql
来开发新代码。注意到PHP配置中的Magic Quotes在默认情况下是打开的-不知道我是否可以更改,因为宿主默认打开了它-这是否可能更改…如果在我的HTACCESS文件中它被标记为关闭,如果打开,您的服务器不仅配置不正确,而且运行的是超旧版本的PHP。让我为您搜索一下:只需在浏览器的地址栏中键入“remove magic quotes”,然后点击出现的第一个链接