Вставка массива в столбец базы данных mysql
Я пытаюсь вставить значения из выпадающего списка в форме в столбец mysql db. Например: в раскрывающемся списке будет выбран один или несколько вариантов, после чего при публикации формы данные будут вставлены в один столбец в базе данных mysql. Я застрял на том, как вставить данные.
4 ответа
Если вы хотите вставить в одну строку, то вы можете использовать implode() для генерации данных, разделенных запятыми, или вы можете сделать json_encode() и добавить в ваш столбец.
Скажем, вы получаете данные как
$data = array("one", "two", "tree");
// output one, two, three
$insert_data = implode(",", $data);
or
$insert_data = json_encode($data);
То для вставки данных в один столбец. При получении вы можете выполнить explode() или json_decode(), чтобы получить возвращаемые данные и снова использовать их в множественном выборе.
Если вы хотите одну строку для каждого элемента, то просто переберите массив и добавьте их
Установите тип столбца в строку, затем используйте функцию serialize($array) для преобразования массива в строку. Если вы хотите получить строку обратно в массив, используйте unserialize($string)
Вы можете превратить массив в одну строку с помощью http://us1.php.net/function.implode
$comma_separated = implode(",", $array);
Несколько вещей для размышления:
Если существует отношение один ко многим - оно не должно быть в одном столбце, изучите несколько таблиц и измените структуру базы данных.
Если вы действительно хотите передать массив, вам нужно преобразовать его в строку, используя встроенную функцию php implode
затем с помощью встроенной функции explode
извлечь столбец из БД
$arr = array('val1','val2');
$string = implode(',',$arr);
//Do db insert
//Do db retrieve
$arr = explode(',',$string);