### 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 );
}
~~~
- 架構
- 基礎框架文檔
- base/action(C層基類)
- protected 類定義
- __construct構造函數
- c_list
- c_index
- c_page
- c_pageJson
- c_listJson
- c_getByAjax
- c_getCountByName
- c_toAdd
- c_add
- c_init
- c_edit
- c_deletes
- c_ajaxdeletes
- c_saveBatch
- c_checkRepeat
- getDatadicts
- showDatadicts
- getDataNameByCode
- assign
- display
- view
- assignFunc
- model/base(M層基類)
- protected類定義(model)
- __construct
- find
- get_table_fields
- findAll
- findSql
- create
- delete
- findBy
- updateField
- query
- findCount
- update
- filterFunc
- filterField
- filterWithoutField
- filterCustom
- createBatch
- pageBySql
- listBySql
- pageBySqlId
- deletes
- 事務控制
- 獲取對象數組
- addBatch_d
- add_d
- edit_d
- isRepeat
- 列表組件文檔
- 基礎表格
- 數據獲取
- 表格數據顯示
- 常用控制參數
- 表格右鍵擴展
- 表格擴展按鈕
- 快速搜索
- 高級搜索(自定義視圖)
- 表格注冊事件
- 主從表格
- 可編輯表格
- 模塊開發
- 開發案例
- 開發準則