Мой вопрос - какой самый лучший и эффективный способ сохранить большой массив php в таблицу mysql.Я знаю, что есть много способов сделать это, и я попробовал несколько из них, но я все еще не нашел метод, который мне действительно удобно использовать.Основной метод, который рекомендует большинство людей - это php-функции serialize () и unserialize ().По какой-то причине это не работает для меня, и я, кажется, пытался исправить это, но idk.
Вот мой код:
// unserialize songs, add new song to end of array, and then re-serialize to add to db
$cereal = unserialize($dbsongs);
$pushed = array_push($cereal, $_GET['song']);
$songs = serialize($pushed);
//update playlists table
$stmt = $dbh->prepare("UPDATE playlists SET songs=:songs WHERE title=:title AND user=:user");
$stmt->bindParam(':user', $_SESSION['username'], PDO::PARAM_STR);
$stmt->bindParam(':title', $_GET['title'], PDO::PARAM_STR);
$stmt->bindParam(':songs', $songs, PDO::PARAM_STR);
$stmt->execute();
Итак, сначала я отменяю серию $ dbsongs , который является пустым списком сериализованных данных из таблицы MySQL.Затем я помещаю $ _ GET ['song'] в массив с помощью array_push () .Затем я сериализирую это и сохраняю в БД.По некоторым причинам это не работает, но я также хотел бы знать, если есть лучший способ.
Должен ли я попытаться разбить массив php и сохранить каждый элемент в таблицу и разделить элементы с помощьюзапятая и разрывая эту строку, когда я получаю ее из базы данных?
Или я должен просто исправить этот метод, который я использую?Или даже добавить base64_decode () и base64_encode () ?Эти методы кажутся довольно старыми из-за того, что я читал ... http://www.evolt.org/node/60222
Я видел метод, использующий .implode , но я не могу понять, как его использовать ... Ссылка 1 Ссылка 2 .Это выглядит как самый современный подход, который я видел.Это то, что я должен изучить дальше?
Не уверен, что это за метод, но он упоминает Cakephp, который, я полагаю, является библиотекой php.Это хороший метод? Ссылка 1
Я собираюсь хранить много элементов в этих списках (например, более 1k элементов регулярно), поэтому я даже не уверен, что еслисохранение этих элементов в одном поле таблицы будет целесообразным.Будет ли просто создание таблицы для этих элементов лучшим способом, так как список будет очень длинным (создание новой записи в БД для каждого добавленного нового элемента и создание поля «заголовок», чтобы связать их все вместе)?Я никогда не экспериментировал с чем-то подобным, потому что я никогда не мог найти достаточно информации о том, сколько данных может на самом деле хранить mysql без проблем.
Я знаю, что здесь много вопросов, но любые ответы будут с благодарностью приняты!Заранее спасибо!
-BAH