@runapa

Как исправить ошибку SQLSTATE[22007]?

Патаюсь сделать update таблицы, и выскакивает такая ошибка:
Текст ошибки: SQLSTATE[22007]: Invalid datetime format: 1292 Truncated incorrect DOUBLE value:

Код который не работает:
\R::exec('UPDATE cron SET notice = 1 WHERE event_id = :event_id', [ ':event_id' => $event_id]);


event_id это varchar(8). Ошибка же возникает тогда, когда $event_id == '12669243' или другому цифровому значению. Если строка смешанная, то всё работает хорошо. Значения в event_id генерируются автоматически, и всегда длинной 8 символов.
  • Вопрос задан
  • 63 просмотра
Решения вопроса 1
vilinyh
@vilinyh
По всей видимости \R:exec неправильно биндит параметры, что вызывает в РСУБД приведение типов в колонке event_id при сравнении, и, как следствие ошибку. Измените запрос, чтобы смысл where-clause был таким:

where event_id = cast(:event_id as char(8))

Потому что сейчас у вас происходит вот так (если :event_id - double):

where cast(event_id as double) = :event_id
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@FanatPHP
Чебуратор тега PHP
У тебя в $event_id колбаса
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы