Zend Framework v1 INSERT INTO多行

时间:2013-08-25 17:27:29

标签: mysql zend-framework

我正在研究基于Zend Framework v1.12的电子商店,我需要创建一个包含数千条记录的产品列表解析器。我试图制作一个createRow() -> save()的循环,但我发现大型列表太慢了。

Zend fr。有一个功能可以在一个查询中保存多个记录吗?

1 个答案:

答案 0 :(得分:0)

不,Zend Framework v1没有这样的功能。但是根据您的需求实现INSERT INTO并不是那么困难。这是我的功能:

     /**
     *  @brief Safe implementation of INSERT INTO
     *  
     *  @param [in] $array Array[] of values 'column'=>'value"
     *  @return void
     *  
     */
    protected function saveRows($array) {
        $values=$columns    = array();
        $vLabels=$cLables   = '';

        foreach ($array as $colval) {
            $vLabels.="(";
            foreach ($colval as $column=>$value) {
                if (!$ready) {
                    array_push($columns,$column);
                    $cLables.='?,';
                }
                array_push($values,$value);
                $vLabels.='?,';
            }
            $vLabels        = rtrim($vLabels,', ');
            !$ready     ?  $cLables = rtrim($cLables,', ') : null;
            $vLabels       .= "),";
            $ready          = true;
        }
        $vLabels = rtrim($vLabels,', ');

        $query="INSERT INTO `".$this->primary_key."` (".$cLables.") VALUES ".$vLabels;
        $subst=array_merge($columns,$values);
        $this->query($query,$subst);
    }