Heim  >  Artikel  >  Backend-Entwicklung  >  PHP如何将多维数组插入数据库

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

WBOY
WBOYOriginal
2016-06-06 20:37:501874Durchsuche

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


</code>

回复内容:

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


</code>

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

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

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

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

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

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

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

补充上面的答案

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

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

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

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

<code>/**
* 将字符串转换为数组
*
* @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));
}
</code>

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

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn