php - 为什么我的 UPDATE 查询不起作用? MySQL

标签 php mysql sql-update

我正在开发一个博客网站,目前正致力于制作博客编辑页面。由于某种原因,我的博客更新查询不起作用,我不明白为什么它不起作用。我没有收到错误。它只是不更新​​任何东西。

我正在从旧博客收集数据并将其插入到我的表单中。然后我尝试使用我的更新查询来更新它。

这是我到目前为止的代码:

aanpassen.php

    <?php

    $error=false;
    include_once('includes/connection.php');
    include_once('includes/article.php');

    $article = new Article;


    if ( isset( $_POST ['id'], $_POST['title'], $_POST['content'] ) ) {

        $id = $_POST ['id'];
        $title = $_POST['title'];
        $content = nl2br( $_POST['content'] );

        if (empty($title) || empty($content) || empty($id)){

            $error='All fields are required!';

        } else {
$query = $pdo->prepare("UPDATE articles SET article_title = :title, 
                        article_content = :content WHERE id=:id");
            if( $query ){
$id = $_POST ['id'];
$query->bindValue(':title', $title);
$query->bindValue(':content', $content);
$query->bindValue(':id', $id);
$query->execute();
                header( sprintf( 'Location: index.php?status=%s', $result ? 'ok' : 'failed' ) );
            } else {
                exit('bad foo - unable to prepare sql query');
            }
        }
    }

    if ( isset( $_GET['id'] ) ) {
        $id = $_GET['id'];
        $data = $article->fetch_data( $id );
    } else {
        header('Location: index.php');
        exit();
    }

?>

<form action="aanpassen.php" method="post" autocomplete="off">
    <input type="hidden" name="id" value="<?php echo $id; ?>" />
    <input type="text" name="title" class="titleform" placeholder="Blog naam" value="<?php echo $data['article_title']; ?>" />
    <textarea name="content" id="summernote" rows="15" cols="50"><?php echo $data['article_content'] ?></textarea>
    <input type="submit" class="buttonclass" value="Aanmaken" />
</form>
<?php
if ($error)
    printf('<h1>%s</h1>', $error);
?>

connection.php

<?php 
try {
$pdo = new PDO('mysql:host=localhost;dbname=cms', 'root', 'root');
} catch (PDOException $e) {
    exit('Database error.');
}
?>

最佳答案

您在所有 bindValue 参数中都错过了“:”。应该是这样的:

$query->bindValue(':title', $title); $query->bindValue(':content', $content); $query->bindValue(':id', $id);

还有if (empty($title)或empty($content)或empty($id))这应该是if (empty($title) ||empty($内容) || 空($id)) 像这样

关于php - 为什么我的 UPDATE 查询不起作用? MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49749760/

相关文章:

php - Mysql脚本创建列

php - 在搜索引擎中显示多个结果

Java SQL Server 应用程序卡在 statements.executeUpdate() 上

sql-server - SQL Server 更新行,如 '%#186;%'

r - sqldf更新错误

php - Laravel 5.2 的软删除级联

PHP socket_write 在非阻塞套接字循环中只有最后一次写入成功

在 FreeBSD 中从 PHP 5.5 升级后出现 PHP 5.6 错误 "Unable to connect to ssl://"

java - 从android发送数据到mysql数据库

php - 如何将phinx迁移工具与codeception测试框架一起使用