Hướng dẫn save array to mysql - lưu mảng vào mysql

Tôi muốn lưu thêm thông tin trước khi gửi tổng số đơn đặt hàng cho PayPal. Đối với mỗi mục tôi đã tạo một cột duy nhất trong cơ sở dữ liệu MySQL của tôi, nơi tôi muốn lưu trữ nó. Bây giờ tôi đã suy nghĩ để lưu nó dưới dạng một mảng mà tôi có thể đọc sau để tạo trang PHP. Các trường bổ sung được lấy từ các trường hình thức đầu vào.

Bằng cách sử dụng một mảng, tôi có thể chắc chắn không kết hợp thông tin không?

Hướng dẫn save array to mysql - lưu mảng vào mysql

Sự nhận thức

78.3K19 Huy hiệu vàng181 Huy hiệu bạc194 Huy hiệu đồng19 gold badges181 silver badges194 bronze badges

Khi được hỏi ngày 21 tháng 5 năm 2012 lúc 13:37May 21, 2012 at 13:37

3

Bạn có thể lưu trữ mảng bằng ________ 8/________ 9. Với giải pháp đó, chúng không thể dễ dàng được sử dụng từ các ngôn ngữ lập trình khác, vì vậy bạn có thể xem xét sử dụng ____ 10/________ 11 thay thế (cung cấp cho bạn một định dạng được hỗ trợ rộng rãi). Tránh sử dụng ________ 12/________ 13 cho điều này vì có thể bạn sẽ kết thúc với lỗi hoặc sai sót bảo mật.

Lưu ý rằng điều này làm cho bảng của bạn không bình thường hóa, đây có thể là một ý tưởng tồi vì bạn không thể dễ dàng truy vấn dữ liệu. Do đó, hãy xem xét điều này một cách cẩn thận trước khi đi tiếp. Bạn có thể cần truy vấn dữ liệu cho số liệu thống kê hay không? Có những lý do khác để bình thường hóa dữ liệu?

Ngoài ra, đừng lưu mảng

$array = array( 1, 2, 3 );
$string = serialize( $array );
echo $string;
4 thô. Ai đó có thể dễ dàng tạo biểu mẫu web của riêng họ và đăng dữ liệu lên trang web của bạn, do đó gửi một hình thức thực sự lớn chiếm nhiều không gian. Lưu các trường đó bạn muốn và đảm bảo xác thực dữ liệu trước khi lưu nó (để bạn không nhận được các giá trị không hợp lệ).

Hướng dẫn save array to mysql - lưu mảng vào mysql

Đã trả lời ngày 21 tháng 5 năm 2012 lúc 13:45May 21, 2012 at 13:45

Emil Vikströmemil VikströmEmil Vikström

88.7K15 Huy hiệu vàng134 Huy hiệu bạc170 Huy hiệu đồng15 gold badges134 silver badges170 bronze badges

3

Cách những thứ như thế được thực hiện là tuần tự hóa mảng, có nghĩa là "tạo ra một chuỗi từ nó". Để hiểu rõ hơn điều này, hãy xem xét điều này:serializing the array, which means "making a string out of it". To better understand this, have a look on this:

$array = array("my", "litte", "array", 2);

$serialized_array = serialize($array); 
$unserialized_array = unserialize($serialized_array); 

var_dump($serialized_array); // gives back a string, perfectly for db saving!
var_dump($unserialized_array); // gives back the array again

Đã trả lời ngày 24 tháng 7 năm 2013 lúc 9:28Jul 24, 2013 at 9:28

SliqsliqSliq

15.3K25 Huy hiệu vàng105 Huy hiệu bạc141 Huy hiệu Đồng25 gold badges105 silver badges141 bronze badges

1

Sử dụng hàm PHP

$array = array( 1, 2, 3 );
$string = serialize( $array );
echo $string;
5 để chuyển đổi mảng thành chuỗi. Các chuỗi này có thể dễ dàng được lưu trữ trong cơ sở dữ liệu MySQL. Sử dụng
$array = array( 1, 2, 3 );
$string = serialize( $array );
echo $string;
6, chúng có thể được chuyển đổi thành mảng một lần nữa nếu cần.

Đã trả lời ngày 21 tháng 5 năm 2012 lúc 13:40May 21, 2012 at 13:40

Hướng dẫn save array to mysql - lưu mảng vào mysql

PaulpaulPaul

8.8542 Huy hiệu vàng28 Huy hiệu bạc47 Huy hiệu đồng2 gold badges28 silver badges47 bronze badges

1

Để chuyển đổi bất kỳ mảng nào (hoặc bất kỳ đối tượng nào) thành một chuỗi bằng PHP, hãy gọi serialize ():

$array = array( 1, 2, 3 );
$string = serialize( $array );
echo $string;

$ String bây giờ sẽ giữ một phiên bản chuỗi của mảng. Đầu ra của mã trên như sau:

a:3:{i:0;i:1;i:1;i:2;i:2;i:3;}

Để chuyển đổi trở lại từ chuỗi thành mảng, hãy sử dụng unserialize ():

// $array will contain ( 1, 2, 3 )
$array = unserialize( $string );

Đã trả lời ngày 19 tháng 9 năm 2015 lúc 5:21Sep 19, 2015 at 5:21

Hướng dẫn save array to mysql - lưu mảng vào mysql


Đã trả lời ngày 13 tháng 11 năm 2014 lúc 11:10Nov 13, 2014 at 11:10

Hướng dẫn save array to mysql - lưu mảng vào mysql

Lưu trữ nó trong cột đa có giá trị với một dấu phân cách dấu phẩy trong bảng RDBMS.

Đã trả lời ngày 28 tháng 11 năm 2018 lúc 17:02Nov 28, 2018 at 17:02

Hướng dẫn save array to mysql - lưu mảng vào mysql

SivasivaSiva

1691 Huy hiệu bạc3 Huy hiệu đồng1 silver badge3 bronze badges

Bạn có thể sử dụng kiểu dữ liệu MySQL JSON để lưu trữ mảng

mysql> CREATE TABLE t1 (jdoc JSON);

Truy vấn ok, 0 hàng bị ảnh hưởng (0,20 giây)

mysql> INSERT INTO t1 VALUES('{"key1": "value1", "key2": "value2"}');

Truy vấn ok, 1 hàng bị ảnh hưởng (0,01 giây)

Để có được đối tượng trên trong PHP

json_encode(["key1"=> "value1", "key2"=> "value2"]);

Thêm trong https://dev.mysql.com/doc/refman/8.0/en/json.html

Đã trả lời ngày 26 tháng 2 năm 2021 lúc 6:52Feb 26, 2021 at 6:52

cetriccetriccetric

Huy hiệu Bạc 1411 Huy hiệu Đồng1 silver badge3 bronze badges