zoukankan      html  css  js  c++  java
  • PHP保存数组到数据库

    数组是 PHP 开发中使用最多的数据类型之一,对于结构化的数据尤为重要。

    很多时候我们需要把数组保存到数据库中,实现对结构化数据的直接存储和读取。

    其中一个案例就是,对于 Form 提交的多选 checkbox 数据,PHP后端就收到的数据就是一个数组,而且有可能还是多维数组。例如,如下一个员工数组:

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

    对于这样的数据,MySQL数据库是无法直接写入的,那么有什么办法呢?

    有,但是需要稍微转换一下,不过也很简单。就是使用PHP自带的serialize()或者json_encode()函数序列化数据成字符串:

    // 写入数据库之前
    $staff_serialize = serialize($staff);            // 序列化成字符串
    $staff_json = json_encode($staff);               // JSON编码数组成字符串
    
    // 读取数据库后
    $staff_restore = unserialize($staff_serialize);  // 反序列化成数组
    $staff_dejson = json_decode($staff_json, true);  // JSON解码成数组

    之后从数据库里面读出来的数据还是字符串格式的,用unserialize()json_decode()函数转换成数组就可以了。

  • 相关阅读:
    软件测试 Lab1 实验报告
    软件测试 Homework2
    谈谈最近的一个让我印象深刻的错误
    Bill Manager Problem Statement
    C#学习记录(九)Windows Phone开发中的Binding
    C#学习记录(八) XML Serializer尝试
    C#学习记录(七)LINQ语句及LAMDA表达式
    C#学习记录(六)
    软件测试之作业三
    软件测试之实验一
  • 原文地址:https://www.cnblogs.com/Ares0023/p/10474816.html
Copyright © 2011-2022 走看看