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
.
В чём может быть проблема?
Потому что json вы передаёте неверный. Не может быть:
{"success": ...
Должно быть
{"success": ...
Это не имеет никакого отношения ни к экранированию ни к подготовленным запросам, которые обеспечивают корректное представление при передаче данных от приложения к базе. Типы данных json и jsonb валидируют сам пришедший текст - и это обязан быть корректный JSON. У вас JSON приведён некорректный.
Answered by Мелкий on February 18, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP