我试图让用户编辑他们发布的内容。内容分为标题和文本两部分。它也有一个类别,但我不想让他们编辑它。所以这里是代码,用于更新标题的任何更改:
$ sql ="更新
主题
SET topic_subject =" 。 mysql_real_escape_string($ _ POST [' topic_subject'])。 "
WHERE
topic_id =" 。 mysql_real_escape_string($ _ GET [' ID']);
更新内容的代码具有相同的格式。 我从页面的url获取id,一旦他们在编辑页面上单击“提交”,表单就会调用包含此代码的页面。它给了我这个错误:
插入数据时出错。请稍后再试。
您的SQL语法有错误;查看与MySQL对应的手册 服务器版本,用于在#< WHERE topic_id =' WHERE topic_id ='附近使用正确的语法在第4行
我不是SQL专家,也不知道问题所在。提前谢谢。
答案 0 :(得分:0)
您在字符串值周围缺少单引号:
$subject = mysql_real_escape_string($_POST['topic_subject']);
$topic_id = (is_numeric($_GET['id']) ? $_GET['id'] : 'NULL');
$sql = "
UPDATE topics
SET topic_subject = '$subject'
WHERE topic_id = $topic_id
";
我的代码还假设topic_id
是int
列,因此我正在检查该值是否为数字而不是转义它。