/** * Копирование неограниченного числа записей в БД через указание массива значений ключевого, либо произвольного поля * * @param array $oid массив значений ключевого * @param string|bool $key название ключевого поля, по умолчанию - название ключевого поля текущей модели * @param string|bool $table название таблицы, в которой необходимо произвести копирование, по умолчанию - таблица текущей модели * * @return boolean результат копирования записей */ public function copy_array(array $oid = array(), $key = false, $table = false) { $key = $key ? $key : $this->_tbl_key; $table = $table ? $table : $this->_tbl; $table = $this->_db->get_name_quote($table); $query = "SELECT * FROM {$table} WHERE {$key} IN (" . implode(',', $oid) . ')'; $rows = $this->_db->set_query($query)->load_object_list(); foreach ($rows as $row) { $row->{$key} = null; $this->_db->insert_object($this->_tbl, $row, $this->_tbl_key); } return true; }