0

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

$sql = "更新

话题

SET topic_subject = " .mysql_real_escape_string($_POST['topic_subject']) . "

在哪里

topic_id = " .mysql_real_escape_string($_GET['id']);

更新内容的代码具有相同的格式。我从页面的 url 中获取 id,一旦他们在编辑页面上单击提交,表单就会调用包含此代码的页面。它给了我这个错误:

插入数据时出错。请稍后再试。

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 4 行的“WHERE topic_id =”附近使用正确的语法

我不是 SQL 专家,也不知道问题出在哪里。提前致谢。

4

1 回答 1

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

于 2012-04-28T21:36:37.410 回答