我正在尝试在数据库中插入'符号,并具有以下代码。

$actionurl =$_POST['actionurl'];
$newtitle = $_POST['newtitle'];
$newtitle = mysql_real_escape_string($newtitle);
$result2 = mysql_query("UPDATE links SET title='$newtitle' WHERE url='$actionurl'")
   or die(mysql_error());


我得到这个错误


  您的SQL语法有误。检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在的附近使用来启动示例库(论坛线程)''在第1行


如果在mysql_real_escape_string变量上使用$newtitle,为什么会出现错误?

最佳答案

我怀疑是导致错误的是actionurl,而不是$ newtitle。

要对此进行调试,请回显或打印要执行的SQL语句。

您可以执行以下操作:

$sql = "UPDATE links SET title='$newtitle' WHERE url='$actionurl'";
// for debugging, output contents of the $sql string
echo "SQL=" . $sql ;
mysql_query($sql) or die(mysql_error();




正如其他人已经建议的那样,不建议使用mysql_接口。新开发应使用mysqli或PDO。并使用带有绑定占位符的准备好的语句。在2016年苦苦挣扎与mysql_real_escape_string似乎是荒谬的。

07-24 16:30