public function create(Model $Model, $fields = null, $values = null)
{
$id = null;
if (!$fields) {
unset($fields, $values);
$fields = array_keys($Model->data);
$values = array_values($Model->data);
}
$count = count($fields);
for ($i = 0; $i < $count; $i++) {
$valueInsert[] = $this->value($values[$i], $Model->getColumnType($fields[$i]));
$fieldInsert[] = $this->name($fields[$i]);
if ($fields[$i] === $Model->primaryKey) {
$id = $values[$i];
}
}
$query = array('table' => $this->fullTableName($Model), 'fields' => implode(', ', $fieldInsert), 'values' => implode(', ', $valueInsert));
if ($this->execute($this->renderStatement('create', $query))) {
if (empty($id)) {
$id = $this->lastInsertId($this->fullTableName($Model, false, false), $Model->primaryKey);
}
$Model->setInsertID($id);
$Model->id = $id;
return true;
}
$Model->onError();
return false;
}