我正在尝试在数据库中插入'
符号,并具有以下代码。
$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似乎是荒谬的。