PHP/MySQL更新数据库中一条消息记录的问题

标签 php mysql

我有这段 PHP 代码,我试图用它来让用户编辑表单中的新闻记录,然后当他们点击提交按钮时,它将更新数据库中的记录。问题是一切正常,但记录实际上并未在数据库中更新。

有人可以看看我的代码,看看哪里会出现问题吗?

<?php
    $title = "Edit News";
    include("../includes/header.php");
    include("../includes/database.php");
    $done = false;
    $expected = array('newstitle', 'newscontent', 'id');
    if ($_GET && !$_POST) { 
        if (isset($_GET['id']) && is_numeric($_GET['id'])) { 
            $id = $_GET['id']; 
        } 
        else { 
            $id = NULL; 
        } 
        if ($id) { 
            $sql = "SELECT * FROM news WHERE id = $id"; 
            $result = mysql_query($sql) or die ("Error connecting to database..."); 
            $row = mysql_fetch_assoc($result);
        } 
        // if form has been submitted, update record 
        if (array_key_exists('update', $_POST)) { 
            // prepare expected items for insertion into database 
            foreach ($_POST as $key => $value) { 
                if (in_array($key, $expected)) { 
                    ${$key} = mysql_real_escape_string($value); 
                } 
            } 
            // abandon the process if primary key invalid 
            if (!is_numeric($id)) { 
                die('Invalid request'); 
            }
            // prepare the SQL query 
            $query = "UPDATE news SET title = '$title', content = '$content' WHERE id = $id"; 
            // submit the query 
            $done = mysql_query($query) or die("Error connecting to database..."); 
        }
    }
    // redirect page if $id is invalid 
    if ($done) { 
        header("Location: $ROOT/admin/listnews.php"); 
        exit; 
    }
?>

最佳答案

if ($_GET && !$_POST) { 

...

if (array_key_exists('update', $_POST)) { 

这不能确保更新代码永远不会触发吗?

关于PHP/MySQL更新数据库中一条消息记录的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/136288/

相关文章:

php - 使用 ajax 时传递给 implode 的参数无效

php - 下载最新请求的图像比较早请求的图像具有更高的优先级

php - 最低 varchar 数量

php - 在 PHP 中预增量并定义魔法 get 和 set

mysql - 两个内连接导致执行缓慢

php - 如何访问服务器内的mysql服务器?

php - 为我的站点创建 "Badges",存储用户徽章的最佳方式?使用 PHP

javascript - 为什么当我尝试在 PHP 中运行此 JS 代码时没有任何反应?

javascript - 单个redis客户端连接是否支持并发读写?

php - 成功回调时结果如何存储在 jQuery Ajax 数据对象中