JavaEE鸿蒙应用开发HTML&JS+前端Python+大数据开发人工智能开发电商视觉设计软件测试新媒体+短视频直播运营产品经理集成电路应用开发(含嵌入式)Linux云计算+运维开发C/C++拍摄剪辑+短视频制作PMP项目管理认证电商运营Go语言与区块链大数据PHP工程师Android+物联网iOS.NET

【PHP+H5全栈】PHP将数组保存到数据库

来源:黑马程序员

浏览25303人

2019.05.20

在很多时候,我们需要把数字保存到数据库,实现对于结构化数据的直接存储以及读取。

有一个经典用法就是,表单中的复选框checkbox叫多项数据提交给PHP后端,那PHP接收到的就是一个数组,且在很多情况下,有可能还是一个多维数组。例如求职信息中的期望就职的行业是多选的,每个行业中的职位也是多选的,那提交上来的数据是这样的:

[PHP] 纯文本查看 复制代码

?

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
$job = array(
    array(
        "name"=>"IT服务/系统集成",
        "subcate"=>array(
            "产品经理专员",
            "网站策划",
            "网站运营"
        ),
    ),
    array(
        "name"=>"互联网电子商务",
        "subcate"=>array(
            "软件工程师"
            "测试工程师"
        )
    ),
);

对于这样的数据,MySQL数据库是没有办法直接写入的,那么我们首先考虑到的就是将数据拆分处理,可是这项工作既繁杂,又很容易出错,很难对应,所以,我们需要另辟蹊径,将数据进行转换,操作起来简单。

1.使用PHP提供的序列化函数serialize()

[PHP] 纯文本查看 复制代码

?

1
$job_serialize = serialize($job);  // 序列化成字符串

接下来就是将这个字符串存入数据库即可,当我们将数据读取出来时,再将这个字符串进行反序列为数组即可

[PHP] 纯文本查看 复制代码

?

1
$job_restore = unserialize($job_serialize); // 反序列化为数组

2.使用PHP提供的函数json_encode()

[PHP] 纯文本查看 复制代码

?

1
$job_json = json_encode($job); // 将数组转换为json格式的字符串


接下来就是将这个字符串存入数据库即可,当我们将数据读取出来时,再将这个字符串进行转换为数组即可

[PHP] 纯文本查看 复制代码

?

1
$job_dejson = json_decode($job_json,true); // 将json字符串转换为数组