Câu hỏi của tôi là cách tốt nhất và hiệu quả nhất để lưu một mảng php lớn vào bảng mysql là gì. Tôi biết có rất nhiều phương pháp để thực hiện điều này và tôi đã thử một vài trong số đó nhưng tôi vẫn không tìm thấy phương pháp mà tôi thực sự cảm thấy thoải mái khi sử dụng. Phương pháp chính mà hầu hết mọi người đề nghị là các hàm php serialize() và unserialize(). Đối với một số lý do này không phải là làm việc cho tôi và tôi dường như đã cố gắng mọi cách để sửa lỗi này nhưng idk.Cách tốt nhất để lưu dữ liệu mảng PHP vào bảng mysql
Đây là mã của tôi:
// 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();
Vì vậy, đầu tiên tôi unserialize $ dbsongs đó là danh sách trống dữ liệu tuần tự từ một bảng mysql. Sau đó, tôi đẩy $ _GET ['bài hát'] vào mảng với mảng_push(). Sau đó, tôi serialize đó và lưu nó vào db. Vì một số lý do, điều này không có tác dụng, nhưng tôi cũng muốn biết nếu có cách nào tốt hơn.
Tôi có nên thử phá mảng php và lưu từng mục vào bảng và tách các mục bằng dấu phẩy và chúng phá vỡ chuỗi đó khi tôi truy xuất từ db?
Hoặc tôi có nên khắc phục phương pháp này mà tôi đang sử dụng không? Hoặc thậm chí thêm base64_decode() và base64_encode()? Những phương pháp này dường như kinda cũ từ một số trong những điều tôi đã đọc ... http://www.evolt.org/node/60222
Tôi đã thấy một phương pháp sử dụng .implode nhưng tôi không thể tìm ra cách để sử dụng nó ... Link 1Link 2. Điều này trông giống như cách tiếp cận hiện đại nhất mà tôi đã thấy. Đây có phải là những gì tôi nên xem xét thêm?
Không chắc chắn phương pháp này là gì nhưng nó đề cập đến CakePHP mà tôi cho là thư viện php. Đây có phải là phương pháp tốt không? Link 1
Tôi sẽ lưu trữ nhiều mục trong các danh sách này (như hơn 1k mục thường xuyên), vì vậy tôi thậm chí không chắc chắn nếu lưu các mục này vào một trường bảng sẽ phù hợp. Đơn giản chỉ cần tạo một bảng cho các mục này là phương pháp tốt nhất vì danh sách sẽ là bài hát lớn (tạo một mục nhập db mới cho mỗi mục mới được thêm vào và tạo trường "tiêu đề" để liên kết chúng với nhau)? Tôi chưa bao giờ thử nghiệm với một cái gì đó như thế này bởi vì tôi không bao giờ có thể tìm thấy đủ thông tin về bao nhiêu dữ liệu mysql thực sự có thể giữ mà không có vấn đề phát sinh.
Tôi biết có rất nhiều câu hỏi ở đây nhưng mọi câu trả lời sẽ được đánh giá cao! Cảm ơn trước!
-BAH
Bạn có phản đối lưu trữ * bài hát * trong bảng khác và tạo cầu nối không bảng (* playlist_songs *) để xử lý mối quan hệ? Đây là cách truyền thống để làm như vậy với một cơ sở dữ liệu quan hệ như MySQL. –