Ошибка 500 при AJAX запросе

Возникает ошибка 500 (Internal Server Error) при отправке AJAX запроса, ошибка только при запросе на удаление из базы

Yii::$app->db->createCommand("DELETE FROM `notifications` WHERE `id` = $id")
            ->queryAll();

При SELECT * FROM и.т.д проблем никаких нет AJAX не выдает ошибок, да и сам запрос на удаление отрабатывает нормально и удаляет столбец в таблице, но AJAX возвращает ошибку 500 В чём может быть проблема? Благодарю!


Ответы (3 шт):

Автор решения: Pavel Krasulia

Отменил AJAX и отправил этот запрос через форму из вьюшки в результате получил ошибку на уровне PDO PDOException SQLSTATE[HY000]: General error это и была причина 500 (Internal Server Error) в консоли.

Я пока еще не очень понимаю с чем связана эта ошибка, но было явно понятно что дебагер ругается на:

->queryAll();

Старый запрос:

Yii::$app->db->createCommand("DELETE FROM `notifications` WHERE `id` = $id")->queryAll();

Новый рабочий запрос:

Yii::$app->db->createCommand("DELETE FROM `notifications` WHERE `id` = $id")->query();

Ну как, они оба работали, но второй не вызывает ошибку :)

→ Ссылка
Автор решения: Sanya

Можно проще сделать

Notifications::deleteAll(['id' => $id]);
→ Ссылка
Автор решения: Andry Borodin

Для выполнения не-select запросов через createCommand лучше использовать ->execute(). Детали можно найти здесь: https://yiiframework.com.ua/ru/doc/guide/2/db-dao/#non-select-queries

→ Ссылка