public function values(array $values) { if ($this->isInsert()) { foreach ($this->metadata->getColumns() as $colName => $column) { if (!isset($values[$colName]) && $this->isVarcharOfDefaultNull($column)) { $values[$colName] = null; } } } return parent::values($values); }
public function execute($bindValues = array(), $additionalParameters = array(), $query = null) { $result = parent::execute($bindValues, $additionalParameters); if (!$this->isSelect() || empty($result)) { return $result; } // PDO_PGSQL BYTEA HACK $binColumns = array(); foreach ($this->metadata->getColumns() as $column) { if ($column->isBinary()) { $binColumns[] = $column->name; } } if (!empty($binColumns)) { foreach ($result as &$row) { foreach ($binColumns as $colName) { if (isset($row[$colName])) { $row[$colName] = stream_get_contents($row[$colName]); } } } } return $result; }
public function createInsertSql() { if (($column = $this->seqColumn) !== null) { $seqName = strtoupper("{$this->table}_{$column}_seq"); $rows = $this->driver->execute("SELECT {$seqName}.NEXTVAL AS id FROM DUAL"); $this->values[$column] = $id = $rows[0]["id"]; $this->bind($column, $id); $this->driver->setLastInsertId($id); } return parent::createInsertSql(); }