У меня проблемы с обновлением записей в моей базе данных с помощью PDO. Я не получаю никаких ошибок, однако записи в базе данных не обновляются. Я могу без проблем вставлять и удалять записи. Мне просто не удается обновить существующие записи, используя приведенный ниже код и связанную с ним форму.
Вот код, который я использую.
<?php
require '../app/start.php';
if (!empty($_POST)){
$id = $_POST['id'];
$label = $_POST['label'];
$title = $_POST['title'];
$slag = $_POST['slag'];
$body = $_POST['body'];
$updatePage = $db->prepare("
UPDATE pages
SET
label = :label,
title = :title,
body = :body,
slag = :slag,
updated = :NOW()
WHERE
id = :id
");
$updatePage -> execute([
'id' => $id,
'label' => $label,
'title' => $title,
'body' => $body,
'slag' => $slag,
]);
header('Location: ' . BASE_URL . '/admin');
}
if (!isset($_GET['id'])){
header('Location: ' . BASE_URL . '/admin');
die();
}
$page = $db->prepare("
SELECT id, title, label, body, slag
FROM pages
WHERE id = :id
");
$page->execute(['id' => $_GET['id']]);
$page = $page->fetch(PDO::FETCH_ASSOC);
//var_dump($page);
require VIEW_ROOT . '/admin/edit.php';
ИЗМЕНИТЬ КОД ФОРМЫ
<form action = "<?echo BASE_URL; ?>/admin/edit.php" method = "POST"
autocomplete = "off">
<label for = "title">
Title
<input type = "text" name = "title" id= "title"
value = "<?php echo e($page['title']); ?>">
</label>
<label for = "label">
Label
<input type = "text" name = "label" id= "label"
value = "<?php echo e($page['label']); ?>">
</label>
<label for = "slag">
Slug
<input type = "text" name = "slag" id= "slag"
value = "<?php echo e($page['slag']); ?>">
</label>
<label for = "body">
Body
<textarea name = "body" id = "body" cols = "30" rows = "18">
<?php echo e($page['body']);?></textarea>
</label>
<input type = "hidden" name = "id" value=
"<?php echo e($page['id']);?>">
<input type = "submit" value = "Edit">
</form>
Возможный дубликат Допустимые символы PDO для заполнителей






В запросе необязательно использовать :NOW(), а только NOW().
: В привязке заполнителя является необязательным, но NOW () не является привязкой, поэтому, вероятно, это ошибка.
Это решило проблему, просто удалив: from NOW (), спасибо.
Если вы сейчас получаете сообщения об ошибках, ваш отчет об ошибках настроен неправильно.