Я пытаюсь обновить таблицу. Мой запрос
'UPDATE mainOrderData SET isInvoiced = ?, invoiceCw = ? WHERE id = ?'
with params [1, "15", 17408]
Этот запрос принадлежит Symfony/Doctrine. Но я уже пробовал много вариантов этого, ошибка не просто опечатка или синтаксическая ошибка. Это происходит независимо от того, как я передаю sql в базу данных, это как-то связано со структурой базы данных.
Я всегда получаю ошибку:
SQLSTATE [42S22]: столбец не найден: 1054 Неизвестный столбец "MainOrderId" в разделе "where"
Теперь любопытно, что я никогда не указывал MainOrderId. Я указал id, и этот столбец существует и является правильным.
Как, черт возьми, моя база данных меняет этот запрос?
Здесь моя информация о сервере:
Сервер MySQL: локальный хост через сокет UNIX Версия сервера: 5.5.59 Протоколл-версия: 10 Benutzer: MySQL-Zeichensatz: UTF-8 Unicode (utf8)
Apache MySQL-Client-Version: mysqlnd 5.0.11-dev - 20120503 - $ Id: $ PHP Erweiterung: mysql
Мой код довольно шаблонный:
$mainOrderData = $em->getRepository(MainOrderData::class)->find($id);
$woche = date("W");
$mainOrderData->isInvoiced = 1;
$mainOrderData->invoiceCw = $woche;
$em->flush();
У меня нет отношений в сущности, и триггеры не появляются или не определены. Объект, о котором идет речь, не имеет функции MainOrderId, а только другие объекты, которые не связаны с объектом.
То же самое происходит, если я использую ручной запрос sql - любая ссылка на id будет изменена на MainOrderId.
Это может произойти, если у вас есть триггер на столе. - Гордон Линофф 19 минут назад
Вот и все, триггеры были скрыты, и я понятия не имел, что они были там. Сообщение об ошибке тоже не помогло.
Спасибо, Гордон Линофф!