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

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

Guest

Работаю на PHP.

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

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

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

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

Код:
$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'] );
//получаем свой массив.

Твой способ плох тем, что сложный ассоциативный (к примеру) массив, как и любой многомерный, ты не сохранишь. А эта функция позволяет сохранить)
 
А в каком типе оптимальнее хранить в MySQL такие серилизованные данные?
 
в бинарном, очевидно
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab