После исправления различных проблем это, наконец, не возвращает ошибок 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;
}
Попробуйте с этим SQL в подготовленном заявлении
UPDATE comments SET comment = :comment, comment_date = NOW() WHERE post_id = :post_id AND id = :id
VALUES обычно используется для INSERT, редко для UPDATE.
Ваш SQL недействителен, вы, кажется, смешиваете синтаксис UPDATE
и INSERT
.
Вы, вероятно, хотите:
UPDATE comments
SET comment = :comment, comment_date = NOW()
WHERE post_id = :post_id AND id = :id
NB: ваш вопрос указывает на то, что вы неправильно проверяете ошибки при выполнении SQL-запросов. Проверка ошибок — важная часть кода любого приложения, взаимодействующего с базой данных, поскольку она помогает разобраться, когда происходит непредвиденное поведение. Возможно, вы захотите взглянуть на этот ТАК пост для получения дополнительной информации по этой теме.