SQL UPDATE查询具有准备好的语句语法问题,无错误消息

时间:2019-04-07 20:15:42

标签: php sql

修复各种问题后,这最终不会返回任何PHP错误,但不会更新数据库... 也许这是这段代码的语法?

变量$ postId,$ id,$ comment在其他函数中正确返回...

public function updateComment($postId, $id, $comment) {   
    $db = $this->dbConnect();
    $commentUpdate = $db->prepare(
        'UPDATE comments SET comment, comment_date VALUES(:comment, NOW()) 
         WHERE post_id = :post_id AND id = :id'
    );
    $affectedLines = $commentUpdate->execute(array(
        'comment' => $comment,
        'post_id' => $postId,
        'id' => $id,
    ));
    return $affectedLines;
}

2 个答案:

答案 0 :(得分:1)

您的SQL无效,您似乎在混用UPDATEINSERT语法。

您可能想要:

UPDATE comments 
SET comment = :comment, comment_date = NOW()
WHERE post_id = :post_id AND id = :id 

NB:您的问题表明您在运行SQL查询时没有正确检查错误。错误检查是与数据库进行交互的任何应用程序代码的重要组成部分,因为它有助于在发生意外行为时进行分类。您可能需要查看this SO post,以获取有关该主题的更多信息。

答案 1 :(得分:0)

在准备好的语句中尝试使用此SQL

UPDATE comments SET comment = :comment, comment_date = NOW() WHERE post_id = :post_id AND id = :id  

VALUES通常用于INSERT,很少用于UPDATE。