🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### createBatch **在数据表中批量新增数据** **参数** \* @param $row 数组形式,数组的键是数据表中的字段名,键对应的值是需要新增的数据。 \* @param $addObjs 数组形式,数组的键是数据表中的字段名,键对应的值是需要新增的数据。 \* @param $keyword 字符串类型,拼装SQL时,会检验数组中的$val\[$keyword\]中是否有值,没有则忽略该条数据 ~~~ public function createBatch($rows, $addObjs = null, $keyword = null) { if (! is_array ( $rows ) || count ( $rows ) == 0) return FALSE; $valArr = array (); $cols = array (); $row_frist = reset ( $rows ); // foreach ( $row_frist as $key => $value ) { // $cols [] = $key; // } $cols = array(); foreach ( $rows as $key=>$row ) { $row = $this->__prepera_format ( $row ); $rows[$key]=$row; } foreach ( $rows as $key => $value ) { $keyarr = array_keys($value); $cols=array_merge($cols,$keyarr);//合并所有数据列 } $cols = array_unique($cols); $col = join ( ',', $cols ); //判断是否有额外增加数组,有则加上 if (! empty ( $addObjs )) { foreach ( $addObjs as $key => $value ) { $col .= ',' . $key; } } foreach ( $rows as $row ) { if (! empty ( $keyword ) && empty ( $row [$keyword] )) { continue; } $vals = array (); //按输入字段来生成数组,不存在则生成空字符串(主要应对checkbox) foreach ( $cols as $value ) { if (isset ( $row [$value] )) { $vals [] = "'" . $this->__val_escape ( $row [$value] ) . "'"; } else { $vals [] = "''"; } } // foreach ( $row as $key => $value ) { // $vals [] = "'" . $this->__val_escape ( $value ) . "'"; // } //判断是否有额外数组,有则加上 if (! empty ( $addObjs )) { foreach ( $addObjs as $key => $value ) { $vals [] = "'" . $this->__val_escape ( $value ) . "'"; } } $valArr [] = "(" . join ( ',', $vals ) . ")"; } if (empty ( $valArr )) { return FALSE; } $val = implode ( ",", $valArr ); $sql = "INSERT INTO {$this->tbl_name} ({$col}) VALUES {$val}"; // echo $sql; return $this->_db->query ( $sql ); } ~~~