serialize
储存资料到系统中。语法: string serialize(mixed value);返回值: 字符串函数种类: 资料处理内容说明 
本函数可储存资料到系统中。储存的资料以 byte-stream 方式存放。变量 value 为混合类型,包括整数、倍精确浮点数字符串、数组以及类的属性 (类的方法无法储存)。

解决方案 »

  1.   

    ////参考以下代码
    unserialize
    取出系统资料。语法: mixed unserialize(string str);返回值: 混合类型资料函数种类: 资料处理
     
     
    内容说明 
    本函数可取出系统资料。储存的资料以 byte-stream 方式存放。返回值为混合类型,包括整数、倍精确浮点数字符串、数组以及类的属性 (类的方法无法储存)。
     
     
    使用范例 
    <?php
    $conn = odbc_connect("webdb", "php", "chicken");
    $stmt = odbc_prepare($conn, "SELECT data FROM sessions WHERE id = ?");
    $sqldata = array($PHP_AUTH_USER);
    if (!odbc_execute($stmt, &$sqldata) || !odbc_fetch_into($stmt, &$tmp)) {
        // 若执行则 $session_data 设为空值
        $session_data = array();
    } else {
        // 取出 $tmp[0] 值
        $session_data = unserialize($tmp[0]);
        if (!is_array($session_data)) {
            // 出现错误则将 $session_data 清除
            $session_data = array();
        }
    }
    ?> 
      

  2.   

    俺们遇到过一个问题
    一个项目里要保存一些表单到数据库里
    而填写是分步骤的,
    于是把填写的内容存在session中,
    再把session给serialize成一个字符串,
    保存到数据库中但是问题来了
    一次有个笨用户抄了一大段文本
    serialize出来的字符串好长好长,
    但是序列化是成功的,
    想unserialize却失败了所以估计 unserialize 是有长度限制的
    后来我限制了文本的长度算是解决了这个问题.