/** * 插于多行 */ public function insertBulk(array $rows, array $columns = null, $delay = false) { assert(count($rows) > 0); if (empty($columns)) { $columns = array_keys(reset($rows)); } $db = $this->getDB(); $table_name = $db->getTableName($this->table, true); list($sql, $marks) = self::getInsertSQL($table_name, $columns, $delay, false); $chunks = array_chunk($rows, self::COUNT_INSERT_BULK_MAX); foreach ($chunks as $chunk) { $more_marks = array_fill(0, count($chunk), "({$marks})"); $sql .= " VALUES " . implode(', ', $more_marks); $more_values = array_map('array_values', $chunk); $params = exec_funcution_array('array_merge', $more_values); $db->execute($sql, $params); } }
function insertBulk(array $vB, array $J = null, $WB = false, $FC = false) { assert(count($vB) > 0); $Y = $this->getTable(true); if (empty($J)) { $J = array_keys(reset($vB)); } list($G, $XB) = $this->getInsertSQL($J, $WB, $FC); $OF = array_chunk($vB, self::COUNT_INSERT_BULK_MAX); foreach ($OF as $TD) { $NF = array_fill(0, count($TD), "({$XB})"); $G .= " VALUES " . implode(', ', $NF); $MF = array_map('array_values', $TD); $L = exec_funcution_array('array_merge', $MF); $this->getDB()->execute($G, $L); } }