search

Home  >  Q&A  >  body text

PHP如何将多维数组插入数据库

php<?php




$staff=array
(
    array("name"=>"洪七","number"=>"101","sex"=>"男","job"=>"总经理"),
    array("name"=>"郭靖","number"=>"102","sex"=>"男","job"=>"开发工程师"),
    array("name"=>"黄蓉","number"=>"103","sex"=>"女","job"=>"产品经理"),
);


PHP中文网PHP中文网2819 days ago346

reply all(8)I'll reply

  • PHP中文网

    PHP中文网2017-04-10 15:25:27

    serialize序列化数组,然后用unserialize反序列化就可以了。

    reply
    0
  • 高洛峰

    高洛峰2017-04-10 15:25:27

    $myArray = array();
    $myJson = json_encode($myArray);

    $myJson是一个字符串,直接存数据库。

    需要读取的时候
    $myJson = ....;
    $myArray = json_decode($myJson,true);

    这样$myArray就是原来的数组。

    reply
    0
  • 巴扎黑

    巴扎黑2017-04-10 15:25:27

    http://php.net/manual/zh/function.serialize.php
    http://php.net/manual/zh/function.json-encode.php

    用序列化函数将数组序列化成字符串之后再存储到数据库中

    reply
    0
  • PHP中文网

    PHP中文网2017-04-10 15:25:27

    补充上面的答案

    如果是单个公司,新建一个staff表,然后把数据foreach进去,每行一个数字
    如果是多个公司,新建一个staff表,然后把数据foreach进去,每行一个数字,并且加上公司id字段

    这样后期增删查改也许容易点。

    reply
    0
  • 高洛峰

    高洛峰2017-04-10 15:25:27

    这里代码不能格式化么?多维数组 你确定不是数据库的设计有问题么?

    reply
    0
  • 巴扎黑

    巴扎黑2017-04-10 15:25:27

    serialize 的话如果只给php调用的话
    json_encode 考虑多平台多语言

    reply
    0
  • PHPz

    PHPz2017-04-10 15:25:27

    /**
    * 将字符串转换为数组
    *
    * @param    string  $data   字符串
    * @return   array   返回数组格式,如果,data为空,则返回空数组
    */
    function string2array($data) {
        if($data == '') return array();
        @eval("\$array = $data;");
        return $array;
    }
    /**
    * 将数组转换为字符串
    *
    * @param    array   $data       数组
    * @param    bool    $isformdata 如果为0,则不使用new_stripslashes处理,可选参数,默认为1
    * @return   string  返回字符串,如果,data为空,则返回空
    */
    function array2string($data, $isformdata = 1) {
        if($data == '') return '';
        if($isformdata) $data = new_stripslashes($data);
        return addslashes(var_export($data, TRUE));
    }
    

    phpcms里面用这种方法,请问和序列化比哪个更好?这是把数组变成字符串保存在数据库中,从数据库中读取就把字符串转换成数组。

    reply
    0
  • 黄舟

    黄舟2017-04-10 15:25:27

    "洪七","number"=>"101","sex"=>"男","job"=>"总经理"), array("name"=>"郭靖","number"=>"102","sex"=>"男","job"=>"开发工程师"), array("name"=>"黄蓉","number"=>"103","sex"=>"女","job"=>"产品经理"), ); ?>

    reply
    0
  • Cancelreply