Як правильно витягти масив з бд - форум про інтернет-маркетингу

Як правильно витягти масив з БД

Ніколи раніше не пробував зберігати масиви в БД, і тут зіткнувся з проблемою.

Маю масив $ arr.
$ Arr_ser = serialize ($ arr) помістив в осередок arr таблиці бази. Бачу його там в PHPmyAdmin

Потім витягнув, бачу його на сторінці echo $ arr_ser = data [arr] в тому ж впорядкованому вигляді.
Але $ arr = unserialize ($ arr_ser) видає порожнечу. тобто print_r ($ arr) не виводиться зовсім. Масиву немає. Пропав. Чому ??
Екранування mysql_real_escape_string ($ arr) перед записом в базу не допомогла.

Гаразд. Не розумію куди він подівся. Закодував перед відправкою в базу base64_encode ($ arr_ser)

Ура. Масив зберігається. Але! розкодовується base64_decode ($ arr_ser) і далі unserialize ($ arr_ser) в крокозябра.
На сайті і в базі кодування 1251. Проблем з кодуванням в цих таблицях не було. Спробував в базі осередок arr поміняти UTF8 - не допомогло, виводить інші кракозябри.

Чи є якісь критерії для base64_decode за кодуванням?

Що можна зробити в моєму випадку?

Re: Як правильно витягти масив з БД

Влазить serialize ($ arr) цілком. двовимірний масив в кінці дві фігурних дужки на місці.
Всі ці дані, які в масиві окремим текстом нормально входять в таке ж текстове поле. Я ці масиви зберігав раніше просто - розбирав циклом в рядок і зберігав в осередках тих же таблиць. Проблем не було.

Але зберігати масивом мені було б зручніше для подальшої його обробки іншим скриптом.

Спробую скрипти в блокнотах utf8 обробляти.

В принципі для зберігання даних різниці не бачу різниці в якому кодуванні осередок.
При виведенні на сторінці прописав mysql_query ( "SET NAMES cp1251"); і все виводиться нормально в кирилиці. Проблем не було.
Зараз в осередок utf8 запхав російський текст, нормально з неї виводиться на сторінку 1 251 при наявності mysql_query ( "SET NAMES cp1251") ;.

Тільки при кодуванні base64_ тепер виліз косяк.

Схожі статті