允许插入数组到数据库

浏览:709 发布日期:2010/05/14
- 普通 - 未处理
[i=s] 本帖最后由 jiang2798 于 2010-5-14 23:06 编辑 [/i] 
    public function insert($data,$options=array()) {
     echo 'db';
     
        foreach ($data as $key=>$val){
            $value   =  $this->parseValue($val);
            if(is_scalar($value)) { // 过滤非标量数据
                $values[]   =  $value;
                $fields[]     =  $this->addSpecialChar($key);
            }
            if(is_array($value)) { // 允许数组存储
                $values[]   =  var_export($value,true);
                $fields[]     =  $this->addSpecialChar($key);
            }           
        }
        print_r($values);
        $sql   =  'INSERT INTO '.$this->parseTable($options['table']).' ('.implode(',', $fields).') VALUES ('.implode(',', $values).')';
        $sql   .= $this->parseLock(isset($options['lock'])?$options['lock']:false);
        echo $sql;
        return $this->execute($sql);
    }

[/color]写入数据库前处理
[color=red] if(is_array($value)) { // 允许数组存储
$values[] = var_export($value,true);
$fields[] = $this->addSpecialChar($key);
}


读取:
eval("\$setting = $r[setting];");


PHP数组功能很强大,有时候一些数据直接以数组形式存储,可以减少建立字段的麻烦,希望在下个版本的时候加入这个功能。



相关函数:

var_export — 输出或返回一个变量的字符串表示
描述mixed var_export ( mixed $expression [, bool $return ] )
此函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 类似,不同的是其返回的表示是合法的 PHP 代码。
您可以通过将函数的第二个参数设置为 TRUE,从而返回变量的表示。
评论(
后面还有条评论,点击查看>>