0
我正在基于Zend Framework v1.12开发电子商店,我需要创建一个包含数千条记录的产品列表解析器。我试图做一个createRow() -> save()
的循环,但我发现它太慢,大列表。Zend Framework v1插入多行
是否Zend fr。有一个功能可以将多个记录保存在一个查询中?
我正在基于Zend Framework v1.12开发电子商店,我需要创建一个包含数千条记录的产品列表解析器。我试图做一个createRow() -> save()
的循环,但我发现它太慢,大列表。Zend Framework v1插入多行
是否Zend fr。有一个功能可以将多个记录保存在一个查询中?
不,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);
}