Zend Framework v1 插入多行

问题描述 投票:0回答:1

我正在开发基于 Zend Framework v1.12 的电子商店,我需要创建一个包含数千条记录的产品列表解析器。我尝试制作一个

createRow() -> save()
循环,但我发现对于大列表来说太慢了。

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

php mysql zend-framework sql-insert bulkinsert
1个回答
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);
    }
© www.soinside.com 2019 - 2024. All rights reserved.