Показать сообщение отдельно
  #1 (permalink)  
Старый 04.01.2017, 17:55
Профессор
Отправить личное сообщение для wadim Посмотреть профиль Найти все сообщения от wadim
 
Регистрация: 20.01.2014
Сообщений: 150

Как записать массив в базу mysqli.
Всем привет! Запись везде почти происходит, но в 1-2 местах ни как. Вот приблизительный код(основной слишком большой чтобы приводить):


$arr13= array('100','93','94');
$StrSerialize= json_encode($arr13);

mysqli_query($myConnect, "INSERT INTO `Fron` (id, Fron) VALUES ('{$str}', '{$StrSerialize}') ");

в коде выше произошла начальное заполнение базы, с этим проблем нет точно и большая часть программы с такой базой работает, далее:

читаем с базы:

$arrFron= json_decode($arr[Fron]);


изменяем данные (тут и начинаются проблемы, не с изменением, а с записью далее):

$arrFron[]= strval($arrSmegnie2[$i9]);


запись в базу:

$StrSerialize= json_encode($arrFron);

mysqli_query($myConnect, "UPDATE `{$Fron}` SET `Fron` = '{$StrSerialize}' WHERE `id` = '{$id}' LIMIT 1 ");


Запись вообще не происходит, проблема в изменении данных, по идее все должно работать, я думаю касячные функции типа json_encode и
Serialize, есть ли другие методы записи массива в базу? Не хочется писать свой json_encode.

Данные записи-чтения:

После начального заполнения базы имеем: ["94"]
после изменения данных при последующей записи в базу имеем: ["94","100"]

То есть перед конечной записью(та которая не работает) я проверяю что пишу и меня устраивает, так как ["94","100"] это то что нужно, но запись не происходит. Возможно там пробелы или спец символы, которые не видны, ни знаю почему не пишет. Скорее что-то происходит на стадии изменения данных, но там ни чего не должно происходить, так как я далеко не первый раз программирую и не представляю как более профессионально там написать код, там нет или почти нет вариантов. Вину валю на json_encode. Поле Fron имеет тип text.

Последний раз редактировалось wadim, 04.01.2017 в 18:16.
Ответить с цитированием