TransWikia.com

Query failed: ERROR: invalid input syntax for type json

Stack Overflow на русском Asked by JamesJGoodwin on February 18, 2021

Почему-то возникает ошибка при вставке json в базу:

LINE 1: ...DATE tickets_cache SET (data, data_hash, date) = ('{"success...
                                                             ^
DETAIL:  Token "<" is invalid.
CONTEXT:  JSON data, line 1: {"success": true, "data": 

Ошибка возникает крайне редко и в 99.8% случаев json вставляется корректно.

Код вставки данных в базу:

$query = "UPDATE tickets_cache SET (data, data_hash, date) = ('{$new_response}', '{$new_hash}', '{$next_day}') WHERE url_hash = '{$link_hash}'";

Предварительно перед передачей JSON экранируется функцией pg_escape_string.

В чём может быть проблема?

One Answer

Потому что json вы передаёте неверный. Не может быть:

{"success": ...

Должно быть

{"success": ...

Это не имеет никакого отношения ни к экранированию ни к подготовленным запросам, которые обеспечивают корректное представление при передаче данных от приложения к базе. Типы данных json и jsonb валидируют сам пришедший текст - и это обязан быть корректный JSON. У вас JSON приведён некорректный.

Answered by Мелкий on February 18, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP