MySQL хранение подобия массивов

  • Автор темы -
  • Дата начала
Статус
Закрыто для дальнейших ответов.

Гость
#1
Работаю на PHP.

Подскажите, есть ли возможность в MySQL (3.23) размещать что-то типа массива в поле.

Значение, как и количество значений, могжет быть любое количество.

Сейчас я извращаюсь вот так (в поле базы пишу так):
Код:
znachenie1|znachenie2|znachenie3
А в скрипте уже достаю так:
Код:
$значения = explode('|',$row['massiv']);
может можно сразу примерно так (?):
Код:
echo $row['massiv'][0]; //znachenie1
 
G

Guest

Гость
#3
У вас видимо проблемы с нормализацией таблицы, раз у вас элемент кортежа должен содержать множество значений. Рекомендую пересмотреть структуру базы данных.
 

Гость
#4
Конечно, можно. Только не так. Лично я использую следущий метод.

Код:
$array = array(1, 2, 3);
//некий массив

$array_serialized = serialize($array);
//эта переменная - текстовая, но содержит наш массив, записанный своим "кодом"

mysql_query("UPDATE TABLE `table` SET `field` = '".$array_serialized."'");
//записываем её в таблицу

$sql = mysql_query("SELECT * FROM `field`");
//читаем SQL данные

$temp = mysql_fetch_assoc($sql);

$array = unserialize( $temp['field'] );
//получаем свой массив.
Твой способ плох тем, что сложный ассоциативный (к примеру) массив, как и любой многомерный, ты не сохранишь. А эта функция позволяет сохранить)
 
R

RegHar

Гость
#5
А в каком типе оптимальнее хранить в MySQL такие серилизованные данные?
 
Статус
Закрыто для дальнейших ответов.