Inheritance: extends ADODB_base
示例#1
0
 /**
  * {@inheritDoc}
  */
 public function value($data, $column = null, $null = true)
 {
     $value = parent::value($data, $column, $null);
     if ($column === 'uuid' && is_scalar($data) && $data === '') {
         return 'NULL';
     }
     // CUSTOMIZE ADD 2014/07/02 ryuring
     // >>>
     switch ($column) {
         case 'date':
         case 'datetime':
         case 'timestamp':
         case 'time':
             // postgresql の場合、0000-00-00 00:00:00 を指定すると範囲外エラーとなる為
             if ($data === '0000-00-00 00:00:00') {
                 return "'" . date('Y-m-d H:i:s', 0) . "'";
             }
         case 'integer':
             // TreeBehavior::getPath() にて、引数 $id に、null、または、空文字を指定した場合に、
             // Model::id の初期値 false に上書きされてしまう仕様の為、SQLエラーが発生してしまう。
             if ($data === false) {
                 return 'NULL';
             }
     }
     // <<<
     return $value;
 }
示例#2
0
 public function testSettings()
 {
     Configure::write('Cache.disable', true);
     $this->Dbo = ConnectionManager::getDataSource('test');
     $this->skipIf(!$this->Dbo instanceof Postgres);
     $config2 = $this->Dbo->config;
     $config2['settings']['datestyle'] = 'sql, dmy';
     ConnectionManager::create('test2', $config2);
     $dbo2 = new Postgres($config2, true);
     $expected = array(array('r' => date('d/m/Y')));
     $r = $dbo2->fetchRow('SELECT now()::date AS "r"');
     $this->assertEquals($expected, $r);
     $dbo2->execute('SET DATESTYLE TO ISO');
     $dbo2->disconnect();
 }
 /**
  * _fixSequence
  *
  * @param Postgres $db
  */
 protected function _fixSequence($db)
 {
     $sql = sprintf("\n\t\t\tSELECT setval(pg_get_serial_sequence('%s', 'id'), (SELECT MAX(id) FROM %s))", $this->table, $this->table);
     $db->execute($sql);
 }
示例#4
0
 /**
  * Constructor
  * @param $conn The database connection
  */
 function __construct($conn)
 {
     parent::__construct($conn);
 }