为什么我的UPDATE sql查询不起作用?不会更新表

时间:2017-10-25 14:34:20

标签: php mysql sql sql-update

我的功能在这里有问题吗?我也创建了一个带有博客页面的简单任务管理器。这与我用来更新task表中的任务的功能相同,只是修改为更新Blog表。

function update_blog($blogpost) {
    global $db;

    $sql = "UPDATE Blog SET ";
    $sql .= "blog_date='" . db_escape($db, $blogpost['blog_date']) . "', ";
    $sql .= "blog_content='" . db_escape($db, 
    $blogpost['blog_content']) . "' ";
    $sql .= "WHERE id='" . db_escape($db, $blogpost['id']) . "' ";
    $sql .= "LIMIT 1";

    $result = mysqli_query($db, $sql);

    if($result) {
      return true;
    } else {
      // UPDATE failed
      echo mysqli_error($db);
      db_disconnect($db);
      exit;
    }
}

edit.php开始,用户在提交博客文章时会被重定向到blog.php。但是,没有看到编辑,表本身也没有更新。我在这里错过了一些简单的东西吗?

1 个答案:

答案 0 :(得分:0)

它可能与数据库中没有db_escape($db, $blogpost['id'])的记录有关(如果查询没有失败)。我建议执行一个简单的SELECT来查看存在多少行,例如:

SELECT * 
FROM Blog
WHERE id = <value of db_escape($db, $blogpost['id'])>;

如果你没有获得任何行,这可能意味着没有记录,因此没有更新。在这种情况下,您可能必须传递不同的值,具体取决于您在表单中的内容。