我正在研究基于Zend Framework v1.12的电子商店,我需要创建一个包含数千条记录的产品列表解析器。我试图制作一个createRow() -> save()
的循环,但我发现大型列表太慢了。
Zend fr。有一个功能可以在一个查询中保存多个记录吗?
答案 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);
}