/** * Inserts row in a table. * @param mixed array($column => $value)|Traversable for single row insert or Selection|string for INSERT ... SELECT * @return NTableRow or FALSE in case of an error or number of affected rows for INSERT ... SELECT */ public function insert($data) { if ($data instanceof NTableSelection) { $data = $data->getSql(); } elseif ($data instanceof Traversable) { $data = iterator_to_array($data); } $return = $this->connection->query("INSERT INTO $this->delimitedName", $data); if (!is_array($data)) { return $return->rowCount(); } $this->checkReferenceNewKeys = TRUE; if (!isset($data[$this->primary]) && ($id = $this->connection->lastInsertId())) { $data[$this->primary] = $id; return $this->rows[$id] = new NTableRow($data, $this); } else { return new NTableRow($data, $this); } }
/** * Inserts row in a table. * @param mixed array($column => $value)|Traversable for single row insert or Selection|string for INSERT ... SELECT * @return NTableRow or FALSE in case of an error or number of affected rows for INSERT ... SELECT */ public function insert($data) { if ($data instanceof NTableSelection) { $data = $data->getSql(); } elseif ($data instanceof Traversable) { $data = iterator_to_array($data); } $return = $this->connection->query($this->sqlBuilder->buildInsertQuery(), $data); $this->checkReferenced = TRUE; if (!is_array($data)) { return $return->rowCount(); } if (!is_array($this->primary) && !isset($data[$this->primary]) && ($id = $this->connection->lastInsertId($this->getPrimarySequence()))) { $data[$this->primary] = $id; } $row = $this->createRow($data); if ($signature = $row->getSignature(FALSE)) { $this->rows[$signature] = $row; } return $row; }