• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

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

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

Guest

Работаю на PHP.

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

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

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

Guest

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

Guest

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

Код:
$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

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!