Example #1
0
 /**
  * Escapes given value.
  * @param mixed|array|Traversable $value
  * @param string|array|null $type
  * @return mixed|array
  */
 protected function escapeValue($value, $type = null)
 {
     if (!$type) {
         // NULL type
         if ($value === null) {
             return 'NULL';
         } elseif (is_array($value)) {
             foreach ($value as $k => $v) {
                 $value[$k] = $this->escapeValue($v);
             }
             return $value;
         } else {
             if ($value instanceof DateTime) {
                 return $this->escapeValue($value, Manager::DATETIME);
             } elseif ($value instanceof Literal) {
                 return $value->value;
             } else {
                 return is_numeric($value) ? +$value : $this->stmt->getConnection()->getDriver()->escape($value, Manager::TEXT);
             }
         }
     } elseif (is_array($type)) {
         foreach ($value as $k => $v) {
             $value[$k] = $this->escapeValue($v, $type[$k]);
         }
         return $value;
     } elseif ($type !== null) {
         if ($type === Manager::INT) {
             return (int) $value;
         } elseif ($type === Manager::FLOAT) {
             return (double) $value;
         } elseif ($type === Manager::SUBQUERY && $value instanceof Result) {
             return "(\n\t" . implode("\n\t", explode("\n", $value)) . "\n)";
         } elseif ($type === Manager::ARR) {
             $arr = $value instanceof Traversable ? iterator_to_array($value) : (array) $value;
             return '(' . implode(', ', $this->escapeValue($arr)) . ')';
         } elseif ($type === Manager::LITERAL) {
             return $value instanceof Literal ? $value->value : $value;
         } else {
             return $this->stmt->getConnection()->getDriver()->escape($value, $type);
         }
     }
 }
 public function randomizeOrder(BaseStatement $statement)
 {
     $statement->order('RANDOM()');
 }
Example #3
0
File: pdo.php Project: smasty/neevo
 /**
  * Randomizes result order.
  * @param BaseStatement $statement
  */
 public function randomizeOrder(BaseStatement $statement)
 {
     switch ($this->driverName) {
         case 'mysql':
         case 'pgsql':
             $random = 'RAND()';
         case 'sqlite':
         case 'sqlite2':
             $random = 'RANDOM()';
         case 'odbc':
             $random = 'Rnd(id)';
         case 'oci':
             $random = 'dbms_random.value';
         case 'mssql':
             $random = 'NEWID()';
     }
     $statement->order($random);
 }
Example #4
0
 /**
  * Returns full table name (with prefix) if available.
  * @return string|null
  */
 public function getTable()
 {
     if ($this->source instanceof self) {
         return null;
     }
     return parent::getTable();
 }
Example #5
0
 /**
  * Resets the state of the statement.
  */
 public function resetState()
 {
     parent::resetState();
     $this->affectedRows = null;
 }