在MYSQL中读写PHP数组

use*_*624 3 php mysql database arrays associative-array

我想将PHP关联数组从PHP varible保存到MYSQL数据库,然后访问存储的值(在MYSQL数据库中)并在PHP中将其用作关联数组.

$arr = array("abc"=>"ss","aaa"=>"ddd");
Run Code Online (Sandbox Code Playgroud)

现在我想保存

array("abc"=>"ss","aaa"=>"ddd");
Run Code Online (Sandbox Code Playgroud)

到数据库并再次想要检索它并将其分配给变量.

我试图使用该serialize函数,但它只将"Array"一词保存到数据库中.

Ben*_*Lee 11

一种方法是在插入之前将其序列化为字符串,然后在获取之后将其反序列化为数组.有不同的方法可以做到这一点,但如果您的数组很简单,JSON是一种可接受的序列化格式.

您可以在途中使用json_encode:

$str = json_encode($arr);
// Insert $str into db
Run Code Online (Sandbox Code Playgroud)

然后json_decode:

// Got $str from db
$arr = json_decode($str);
Run Code Online (Sandbox Code Playgroud)

另一种方法是序列化:

$str = serialize($arr);
// Insert $str into db
Run Code Online (Sandbox Code Playgroud)

并且反序列化:

// Got $str from db
$arr = unserialize($str);
Run Code Online (Sandbox Code Playgroud)

这将为您提供比json_encode和json_decode更多的序列化可能性,但是手动检查数据库以查看其中的内容将更加困难.

所以这两种方法都有优点和缺点.还有其他序列化/编组格式.