Я сохраняю строку json в базе данных, которая, как представляется, хранится правильно в SQL Server, однако при попытке получить данные она возвращает часть json-строки.Запрос базы данных, не возвращающий полную строку
Я использую PDO и json_encode для сохранения данных. строка JSON хранится длиной около 1000 символов, а поле таблица позволяет длину 4096.
Fetching результат:
$sql = "SELECT TOP 1 * FROM MyTable WHERE id = :id ORDER BY id DESC;";
$params = array(
":id" => $id
);
$sth = $this->db->prepare($sql);
$sth->execute($params);
$result = $sth->fetch(PDO::FETCH_ASSOC);
Сохранение результата:
$json = json_encode($_POST);
$sql = "INSERT INTO MyTable(data) VALUES (:data);";
$params = array(
":data" => $data
);
$stmt = $this->db->prepare($sql);
$stmt->execute($params);
Пример Json, хранящийся в SQL Server:
{
"checkbox_1":"on",
"checkbox_2":"on",
"checkbox_3":"on",
"text_1":"my text",
"images":[
13685
],
"date":"11-11-2015"
}
Пример Json вернулся:
{
"checkbox_1":"on",
"checkbox_2":"on",
"checkbox_3":"on",
"text_1
Update
Оказывается, что длина строки, возвращаемой всегда:
Может ли это быть SQL Конфигурация сервера или, возможно, PDO?
Вы уверены, что строка разве длиннее, чем предел базы данных?'echo strlen ($ json);' – Steve
Что такое кодировка в таблице/поле? Я думаю, что это может быть проблема с кодировкой, в которой вы считаете символы в сравнении с байтами. –
@ Настроить длину строки 894, ограничение базы данных - 4096 – iswinky