首页 > 解决方案 > 我不明白“php pdo 错误处理程序”的错误

问题描述

我正在尝试更新我的帖子。我认为我的代码没有错误。我几乎尝试了一切。但它仍然显示此错误。

未捕获的 PDOException:SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在 C:\xampp\htdocs\x\edit.php:4 的第 1 行的 '' 附近使用正确的语法:4 堆栈跟踪:#0 C:\xampp\htdocs\x \edit.php(4): PDO->query('SELECT * FROM p...') #1 {main} 在第 4 行的 C:\xampp\htdocs\x\edit.php 中抛出

我做错了什么有什么意义?

$id = $_GET["id"];
$sql = $database->query("SELECT * FROM post WHERE id=$id");
$sql->setFetchMode(PDO::FETCH_ASSOC);
foreach ($sql as $x) {
    $post_id = $x["id"];        
    $post_title = $x["post_title"];     
    $post_text = $x["post_text"];               
}

if (isset($_POST["update_post"])) {
    $new_post_title = $_POST["itemName"]."[UPDATED]";
    $new_post_text  = $_POST["itemInfo"];
    try {
        $u_post = $database->prepare("UPDATE post SET post_title=:p_title,post_text=:p_text WHERE id=$id");
        $u_post->execute(array(":p_title"=>$new_post_title,":p_text"=>$new_post_text));
        if ($u_post) {
            header("location:showpost.php");
        }else {
            echo "Failed";
        }
    } catch (Exception $e) {
        print $e->getMessage();
    }
}

标签: phpmysqlpdo

解决方案


推荐阅读