Невозможно обновить записи базы данных с помощью PHP MySQL PDO

У меня проблемы с обновлением записей в моей базе данных с помощью 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>

Если вы сейчас получаете сообщения об ошибках, ваш отчет об ошибках настроен неправильно.

user3783243 07.10.2018 21:53

Возможный дубликат Допустимые символы PDO для заполнителей

user3783243 07.10.2018 21:54
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
53
1

Ответы 1

В запросе необязательно использовать :NOW(), а только NOW().

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

Nigel Ren 07.10.2018 21:44

Это решило проблему, просто удалив: from NOW (), спасибо.

Aurther 07.10.2018 21:48

Другие вопросы по теме