如何允许用户使用sql UPDATE语句编辑帖子?

时间:2012-04-28 21:20:44

标签: mysql sql database

我试图让用户编辑他们发布的内容。内容分为标题和文本两部分。它也有一个类别,但我不想让他们编辑它。所以这里是代码,用于更新标题的任何更改:

  

$ 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专家,也不知道问题所在。提前谢谢。

1 个答案:

答案 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_idint列,因此我正在检查该值是否为数字而不是转义它。