コード例 #1
0
ファイル: Database.php プロジェクト: jwdeitch/components
 /**
  * {@inheritdoc}
  *
  * @return QueryResult
  * @event statement($statement, $query, $parameters, $database): statement
  */
 public function query($query, array $parameters = [])
 {
     return $this->driver->query($query, $parameters);
 }
コード例 #2
0
ファイル: ColumnSchema.php プロジェクト: jwdeitch/components
 /**
  * Check if column is enum.
  *
  * @param array  $schema
  * @param Driver $tableDriver
  */
 private function resolveEnum(array $schema, $tableDriver)
 {
     $query = "SELECT object_definition(o.object_id) AS [definition],\n                             OBJECT_NAME(o.OBJECT_ID) AS [name]\n                      FROM sys.objects AS o\n                      JOIN sys.sysconstraints AS [c]\n                        ON o.object_id = [c].constid\n                      WHERE type_desc = 'CHECK_CONSTRAINT' AND parent_object_id = ? AND [c].colid = ?";
     $constraints = $tableDriver->query($query, [$schema['object_id'], $schema['column_id']]);
     foreach ($constraints as $checkConstraint) {
         $this->enumConstraint = $checkConstraint['name'];
         $name = preg_quote($this->getName(true));
         //We made some assumptions here...
         if (preg_match_all('/' . $name . '=[\']?([^\']+)[\']?/i', $checkConstraint['definition'], $matches)) {
             $this->enumValues = $matches[1];
             sort($this->enumValues);
         }
     }
 }