массив array записать в MySQL

Статус
В этой теме нельзя размещать новые ответы.

helenfly

Создатель
Регистрация
6 Мар 2009
Сообщения
18
Реакции
0
Допустим, имеется массив
array ("globoxchange"=array ($wmz_wmr,$wmz_wme,$wmz_wmu),
"megachange"=array ($wmz_wmr,$wmz_wme,$wmz_wmu));

Для получения из MySQL массива есть функции, например mysql_fetch_array(), а есть ли обратные функции? Чтобы имеющийся массив записать в БД?
 
Типа "массив" в mysql нет. Можешь записывать либо поэлементно в нужные поля, либо записать в строку массив через определенные разделители, а при вытягивании уже разбить strtok'ом или еще чем-нибудь.

Код:
string implode  ( string $glue  , array $pieces  )

Возвращает строку, полученную объединением строковых представлений элементов массива pieces , со вставкой строки glue между соседними элементами.
 
Спасибо за совет, сейчас попробую

Добавлено через 4 минуты
записать в строку массив через определенные разделители, а при вытягивании уже разбить strtok'ом или еще чем-нибудь.

Т.е организовать работу с записью в текстовые файлы (implode-explode)?
 
PHP:
<?php

$array = array('lastname', 'email', 'phone');
$comma_separated = implode(" ", $array);

echo $comma_separated; // lastname,email,phone

?>

Записываешь в строку массив, строку записываешь в базу. Не нужно никаких файлов.
 
Допустим, имеется массив
array ("globoxchange"=array ($wmz_wmr,$wmz_wme,$wmz_wmu),
"megachange"=array ($wmz_wmr,$wmz_wme,$wmz_wmu));

Для получения из MySQL массива есть функции, например mysql_fetch_array(), а есть ли обратные функции? Чтобы имеющийся массив записать в БД?

mysql_fetch_array() - это извлечение данных из БД в виде массива, нам не кто не мешает получить их например в виде объектов... и также не чего не мешает запихнуть массив в базу...
 
нам не кто не мешает получить их например в виде объектов... и также не чего не мешает запихнуть массив в базу...

Чтобы запихнуть массив в базу, в базе нужно сначала создать поле с типом "массив", но мускл не поддерживает такой формат. Если умеешь - покажи.
 
Чтобы запихнуть массив в базу, в базе нужно сначала создать поле с типом "массив", но мускл не поддерживает такой формат. Если умеешь - покажи.
Согласен, но зачем нам такой формат, нам вполне подойдет формат TEXT.

PS. PHP_Master как раз ниже пишет об этом.
 
Прекратите заниматься извращениями :D

Чтоб сохранить массив в базе достаточно его сериализовать.
После извлечения из базы делаем обратную процедуру и имеем свой массив.
 
Если у массива предполагается постоянная размерность, можно создать таблицу БД и пихать i-й элемент массива в i-е поле таблицы.
Недостаток: если размерность массива меняется (появляется еще одна пара валют), придется в базе так же добавить поле в данную таблицу для новой пары.
Достоинство: появляется возможность поиска средствами СУБД по значениям массивов, которые теперь представлены записями таблицы СУБД.
В вырожденном случае таблица будет иметь единственную запись, содержащую элементы массива.
 
Если нужен поиск по массиву, надо использовать СУБД, которые это позволяют, а не насиловать мускул и собственный мозг.

А для хранения массива в mysql ничего лучше /быстрее сериализации или JSON не существует.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху