2012-04-28 90 views
0

我想让用户编辑他们发布的内容。内容分为标题和文本两部分。它也有一个类别,但我不想让他们编辑它。因此,下面是假设更新标题更改的代码:如何让用户使用sql UPDATE语句编辑帖子?

$sql = "UPDATE

topics

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

WHERE

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

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

An error occurred while inserting your data. Please try again later.

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE topic_id =' at line 4

我不是SQL专家,不知道问题可能是什么。提前致谢。

回答

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列,所以我检查,如果该值是数字,而不是逃避它。

+0

谢谢,修正了错误。我试图修改帖子,但它不编辑帖子。 – user1363393 2012-04-28 22:32:56

+0

您是否正在执行SQL查询?我发布的代码只构建查询。如果是,请回显'$ sql'来查看您传递给MySQL的确切查询,并在此处发布结果。 – bfavaretto 2012-04-28 23:52:54

+0

这就是我得到的:更新帖子SET post_content ='测试帖子'。 WHERE post_id = NULL – user1363393 2012-04-29 00:49:56