Beispiel #1
0
 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);
 }
Beispiel #2
0
 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;
 }
Beispiel #3
0
 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();
 }