Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么我的更新sql查询不起作用?不会更新表_Php_Mysql_Sql_Sql Update - Fatal编程技术网

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

Php 为什么我的更新sql查询不起作用?不会更新表,php,mysql,sql,sql-update,Php,Mysql,Sql,Sql Update,我的函数有什么问题吗?我创建了一个简单的任务管理器,其中还包含一个博客页面。这与我用来更新任务表中的任务的函数相同,只是修改为更新Blog表 function update_blog($blogpost) { global $db; $sql = "UPDATE Blog SET "; $sql .= "blog_date='" . db_escape($db, $blogpost['blog_date']) . "', "; $sql .= "blog_con

我的函数有什么问题吗?我创建了一个简单的任务管理器,其中还包含一个博客页面。这与我用来更新任务表中的任务的函数相同,只是修改为更新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。但是,不会看到编辑,也不会更新表本身。我在这里遗漏了一些简单的东西吗?

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

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

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

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

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

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

是否检查了错误?$result是真还是假?正在执行的实际运行时SQL查询是什么?手动执行该查询时会发生什么情况?在执行之前尝试回显sql并验证它是否输出了原始查询?看到你想要的了吗?你对SQL注入非常开放。由于您使用的是mysqli,请利用和。这将解决可能出现的任何令人讨厌的引用问题,即使使用转义字符串函数SCHECKED查找错误?$result是true还是false?正在执行的实际运行时SQL查询是什么?手动执行该查询时会发生什么情况?在执行之前尝试回显sql并验证它是否输出了原始查询?看到你想要的了吗?你对SQL注入非常开放。由于您使用的是mysqli,请利用和。这将解决可能出现的任何令人讨厌的引用问题,即使使用转义字符串函数也是如此