php把数组保存数据库程序代码

方法一:

用serialize写入,再用unserialize输出

serialize()就是将PHP中的变量如对象(object),数组(array)等等的值序列化为字符串后存储起来.序列化的字符串我们可以 存储在其他地方如数据库、Session、Cookie等,序列化的操作并不会丢失这些值的类型和结构。这样这些变量的数据就可以在PHP页面、甚至是不 同PHP程序间传递了。
而unserialize()就是把序列化的字符串转换回PHP的值。返回的是转换之后的值,可为 integer、float、string、array 或 object如果传递的字符串不可解序列化,则返回 FALSE

 代码如下 复制代码

class db {
 private $host;
 private $user;
 private $pwd;
 private $dbname;
 private $Mysqli;
 function __construct($host, $user, $pwd, $dbname) {
  $this->host = $host;
  $this->user = $user;
  $this->pwd = $pwd;
  $this->dbname = $dbname;
  $this->db();
 }
 function db() {
  $this->mysqli = new mysqli ( $this->host, $this->user, $this->pwd, $this->dbname );
 }
 function select() {
  $this->mysqli->query("SET CHARSET GBK");
  $sql = "SELECT id,cname FROM hdw_channel";
  $result = $this->mysqli
   ->query ( $sql );
  $rows = array ();
  while ( $row = $result->fetch_assoc () ) {
   $rows [] = $row;
  }
  ECHO "<PRE>";
  print_r ( $rows );
 }
 function __wakeup(){   //反序列化,
  $this->db();
 }
}
$chanel = new db("localhost",'root','','hdcms');
//$chanel->select();
session_start();
$_SESSION['channel_obj'] = serialize($chanel);   //将对象序列化,保存的是对象的属性,没有方法,所以要用__wakeup()

class ren{
 private $name;
 private $age;
 function __construct($name,$age){
  $this->name =$name;
  $this->age = $age;
 }
 function show(){
  echo "姓名是:{$this->name}  年龄是:{$this->age}";
 }
 function __sleep(){
  return array_keys(get_object_vars($this));  //或得数组里边的键名,序列化某些变量
 }
}
$zao = new ren("赵六",44);
echo serialize($zao);       //序列化(指定哪个变量序列化)

====================================
 
session_start();
include '59.php';
$channel_obj=unserialize($_SESSION['channel_obj']);  //反序列化类对象
$channel_obj->select();  //有了__wakeup方法才可以起作用

方法二:

用json_encode写入,再用json_decode输出

json_encode之前,把所有数组内所有内容都用urlencode()处理一下,然用json_encode()转换成json字符串,最后再用urldecode()将编码过的中文转回来。

 代码如下 复制代码

<?php
/**************************************************************
 *
 * 使用特定function对数组中所有元素做处理
 * @param string &$array  要处理的字符串
 * @param string $function 要执行的函数
 * @return boolean $apply_to_keys_also  是否也应用到key上
 * @access public
 *
 *************************************************************/
function arrayRecursive(&$array, $function, $apply_to_keys_also = false)
{
    static $recursive_counter = 0;
    if (++$recursive_counter > 1000) {
        die('possible deep recursion attack');
    }
    foreach ($array as $key => $value) {
        if (is_array($value)) {
            arrayRecursive($array[$key], $function, $apply_to_keys_also);
        } else {
            $array[$key] = $function($value);
        }
 
        if ($apply_to_keys_also && is_string($key)) {
            $new_key = $function($key);
            if ($new_key != $key) {
                $array[$new_key] = $array[$key];
                unset($array[$key]);
            }
        }
    }
    $recursive_counter--;
}
 
/**************************************************************
 *
 * 将数组转换为JSON字符串(兼容中文)
 * @param array $array  要转换的数组
 * @return string  转换得到的json字符串
 * @access public
 *
 *************************************************************/
function JSON($array) {
 arrayRecursive($array, 'urlencode', true);
 $json = json_encode($array);
 return urldecode($json);
}

$array = array
       (
          'Name'=>'希亚',
          'Age'=>20
       );

echo JSON($array);
?>

时间: 2024-09-20 12:28:52

php把数组保存数据库程序代码的相关文章

ASP连接SQL Server数据库程序代码

在ASP中数据库链接2中方法 1.直接用字符串链接,代码如下:  代码如下 复制代码 <% '连接数据库 Dim conn Set conn = Server.CreateObject("ADODB.Connection") conn.Open "driver={SQL Server};server=主机ip地址; uid=用户名;pwd=密码;database=数据库名" %> 2.利用DSN(数据源)链接,这种方法你要先创建一个DSN,创建方法点击服

php中数组的搜索程序代码

例  代码如下 复制代码 <?php $people = array("Peter", "Joe", "Glenn", "Cleveland"); if (in_array("Glenn",$people))   {   echo "Match found";   } else   {   echo "Match not found";   } ?> 输出

Drupal读取Excel并导入到mysql数据库程序代码

Drupal 通过Library 调用 PHPExcl 将PHPExcel 下载后,上传到Drupal目录:sites/all/libraries/PHPExcel 如果你的项目中安装了libraries模块,可以通过libraries_load($name);来调用. 如果没有安装libraries模块,可以简单的使用下列代码来调用:  代码如下 复制代码 require("sites/all/libraries/PHPExcel/PHPExcel/IOFactory.php");

php备份mysql数据库程序代码

先看备份的类文件 backdata.class.php:  代码如下 复制代码 <?php /* * *简单的一个Mysql备份数据类 * */ class backupData{     private    $mysql_link;//链接标识     private    $dbName;    //数据库名     private    $dataDir;     //数据所要存放的目录     private    $tableNames;//表名     public functio

asp.net中EXCEL数据导入到数据库程序代码

注意:EXCEL中的第一行不能导入. 下面是源码:IntoExcel.aspx:  代码如下 复制代码 <%@ Page  AutoEventWireup="true" CodeFile="IntoExcel.aspx.cs" Inherits="study_IntoExcel" %>    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu

PHP连接SQLServer数据库程序代码

php中mssql_connect函数默认是不能使用的,我们需要简单配置一下,具体如下 PHP.ini 里面打开 extension=php_mssql.dll 选项 (就是把前面的 : 号去掉) 2. 下载正确版本的 ntwdblib.dll (2000.80.194.0) 3. 覆盖 c:windowssystem32ntwdblib.dll 4. 覆盖 phpntwdblib.dll(有时候完成了这一步也不成功的话,就把PHP所依赖的php5ts.dll放到system32目录下) 利用m

asp ajax无刷新保存数据程序代码

//首先创建访问对象 request  代码如下 复制代码 var request = false; try{  request = new XMLHttpRequest(); } catch (trymicrosoft) {   try{     request = new ActiveXObject("Msxml2.XMLHTTP");    }   catch (othermicrosoft) {     try {       request = new ActiveXObje

asp.net中C#连接mysql数据库程序代码

 代码如下 复制代码 #include <stdio.h> #include <stdlib.h> #include <mysql/mysql.h>   int main(void) {         const char *host = "localhost";         const char *user = "root";         const char *pass = "yourpassword&qu

通用 文件保存至数据库,从数据库写入磁盘 程序代码

程序|数据|数据库 通用 文件保存至数据库,从数据库写入磁盘 程序代码 ----20040809这几天我休假中,正好有时间继续编写mycodelibrary 1.5版,今天晚上刚好写到文件与数据库存入取出模块,在论坛上此问题见的也较多,所以特此公开此部分代码,供有需者参考使用.代码虽然可以完整的正常使用,但还是需要做些错误方面的处理. '欢迎你下载使用本代码,本份代码由程序太平洋提供下载学习之用'声明:'1.本站所有代码的版权归原作者所有,如果你使用了在本站下载的源代码' 引起的一切纠纷(后果)