• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

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 такие серилизованные данные?
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

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