@Iossarian

В чем ошибка обновления записи в БД?

Следующий код на обновление выдает ошибку: Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id = ?' at line 1 in D:\OP\OSPanel\domains\bot\db.php:24 Stack trace: #0 D:\OP\OSPanel\domains\bot\db.php(24): PDO->prepare('UPDATE posts SE...') #1 D:\OP\OSPanel\domains\bot\update.php(62): connection->prepare('UPDATE posts SE...', Array)

$data = $_POST;
$getId = $_GET['id'];

$values = [
    'title' => $data['title'],
    'description' => $data['description'],
    'text' => $data['text'],
    'author_id' => $_SESSION['user']['id'],
    'id' => $getId
];

$sqlUp = "UPDATE posts SET title = :title, description = :description, text = :text, date = NOW(), author_id = :author_id WHERE WHERE id = :id";
$result = $db->prepare($sqlUp, $values);

Метод :
public function prepare($sql, $values) {
        $sth = $this->connect()->prepare($sql);
        $result = $sth->execute($values);
        return $result;
    }

Я так понимаю, значение $getId после нажатия на кнопку сбрасывается и запросу неоткуда брать id записи, но такая же ошибка возникает и при явном указание айдишника.
Пробовал сессии
$_SESSION['getId'] = $_GET['id'];
$getId = $_SESSION['getId'];
  • Вопрос задан
  • 79 просмотров
Пригласить эксперта
Ответы на вопрос 2
@akdes
author_id = :author_id WHERE WHERE id = :id"

дважды WHERE

айди сессии пихать в инпут крайней не безопасно, да и необходимости в этом в принципе нет. Ибо тогда сессия не нужна, если Вы идентификатор хотите держать у клиента... Похоже на попытку работы Stateless используя states (session) :D
Ответ написан
@Iossarian Автор вопроса
Решил сохранение айди через скрытый инпут в форме вывода информации редактируемой записи.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
SaveTime Москва
от 140 000 до 200 000 руб.
Интерно Ростов-на-Дону
от 35 000 до 50 000 руб.
АЛЬФАСАТКОМ Калуга
от 40 000 до 60 000 руб.
17 янв. 2019, в 13:07
1000 руб./за проект
17 янв. 2019, в 13:07
1000 руб./за проект
17 янв. 2019, в 12:16
130000 руб./в месяц