quoteIdentifier() абстрактный публичный Метод

abstract public quoteIdentifier ( $id )
Пример #1
0
 public function toSql(BaseDriver $driver, ArgumentArray $args)
 {
     $sql = '';
     if ($driver instanceof MySQLDriver) {
         $sql = 'CHANGE COLUMN ';
         if (is_string($this->fromColumn)) {
             $sql .= $driver->quoteIdentifier($this->fromColumn);
         } elseif ($this->fromColumn instanceof Column) {
             $sql .= $driver->quoteIdentifier($this->fromColumn->getName());
         }
         // the 'toColumn' must be a type of Column, we need at least column type to rename.
         // $sql .= ' ' . $driver->quoteIdentifier($this->toColumn->getName()) . ' ' . $this->toColumn->getType();
         $sql .= ' ' . $this->toColumn->buildDefinitionSql($driver, $args);
     } elseif ($driver instanceof PgSQLDriver) {
         // ALTER TABLE distributors RENAME CONSTRAINT zipchk TO zip_check;
         $sql = 'RENAME COLUMN ';
         if (is_string($this->fromColumn)) {
             $sql .= $driver->quoteIdentifier($this->fromColumn);
         } elseif ($this->fromColumn instanceof Column) {
             $sql .= $driver->quoteIdentifier($this->fromColumn->getName());
         }
         // the 'toColumn' must be a type of Column, we need at least column type to rename.
         $sql .= ' TO ' . $driver->quoteIdentifier($this->toColumn->getName());
     } else {
         throw new UnsupportedDriverException($driver, $this);
     }
     return $sql;
 }
Пример #2
0
 public function toSql(BaseDriver $driver, ArgumentArray $args)
 {
     if ($this->clauseType == self::SET_DEFAULT) {
         return 'ALTER COLUMN ' . $driver->quoteIdentifier($this->name) . ' SET DEFAULT ' . $driver->deflate($this->defaultValue);
     } else {
         if ($this->clauseType == self::DROP_DEFAULT) {
             return 'ALTER COLUMN ' . $driver->quoteIdentifier($this->name) . ' DROP DEFAULT';
         } else {
             throw new InvalidArgumentException('You should call either setDefault nor dropDefault');
         }
     }
 }
Пример #3
0
 public function toSql(BaseDriver $driver, ArgumentArray $args)
 {
     $sql = '';
     foreach ($this->columns as $col) {
         $sql .= $driver->quoteIdentifier($col) . ',';
     }
     return rtrim($sql, ',');
 }
Пример #4
0
 public function toSql(BaseDriver $driver, ArgumentArray $args)
 {
     $sql = 'DROP DATABASE';
     if ($driver instanceof MySQLDriver) {
         $sql .= $this->buildIfExistsClause();
     }
     $sql .= ' ' . $driver->quoteIdentifier($this->dbName);
     return $sql;
 }
Пример #5
0
 public function toSql(BaseDriver $driver, ArgumentArray $args)
 {
     $sql = '';
     // constrain symbol is optional but only supported by MySQL
     if ($this->symbol) {
         $sql .= 'CONSTRAINT ' . $driver->quoteIdentifier($this->symbol) . ' ';
     }
     $sql .= $this->buildKeyClause($driver, $args);
     return $sql;
 }
Пример #6
0
 public function toSql(BaseDriver $driver, ArgumentArray $args)
 {
     $sql = 'CHANGE COLUMN ';
     if (is_string($this->fromColumn)) {
         $sql .= $driver->quoteIdentifier($this->fromColumn);
     } elseif ($this->fromColumn instanceof Column) {
         $sql .= $driver->quoteIdentifier($this->fromColumn->getName());
     }
     // the 'toColumn' must be a type of Column, we need at least column type to rename.
     $sql .= ' ' . $driver->quoteIdentifier($this->toColumn->getName()) . ' ' . $this->toColumn->buildDefinitionSqlForModify($driver, $args);
     if ($driver instanceof MySQLDriver) {
         if ($this->after) {
             $sql .= ' AFTER ' . $driver->quoteIdentifier($this->after);
         } else {
             if ($this->first) {
                 $sql .= ' FIRST';
             }
         }
     }
     return $sql;
 }
Пример #7
0
 public function toSql(BaseDriver $driver, ArgumentArray $args)
 {
     $sql = 'REFERENCES ' . $driver->quoteIdentifier($this->tableName);
     $sql .= ' (' . $this->columns->toSql($driver, $args) . ')';
     if ($this->onUpdateAction) {
         $sql .= ' ON UPDATE ' . $this->onUpdateAction;
     }
     if ($this->onDeleteAction) {
         $sql .= ' ON DELETE ' . $this->onDeleteAction;
     }
     return $sql;
 }
Пример #8
0
 /**
     Build reference
 track(
         FOREIGN KEY(trackartist) REFERENCES artist(artistid)
         artist_id INTEGER REFERENCES artist
     )
 MySQL Syntax:
     
         reference_definition:
     REFERENCES tbl_name (index_col_name,...)
             [MATCH FULL | MATCH PARTIAL | MATCH SIMPLE]
             [ON DELETE reference_option]
             [ON UPDATE reference_option]
     reference_option:
             RESTRICT | CASCADE | SET NULL | NO ACTION
 A reference example:
 PRIMARY KEY (`idEmployee`) ,
     CONSTRAINT `fkEmployee_Addresses`
     FOREIGN KEY `fkEmployee_Addresses` (`idAddresses`)
     REFERENCES `schema`.`Addresses` (`idAddresses`)
     ON DELETE NO ACTION
     ON UPDATE NO ACTION
 */
 public function toSql(BaseDriver $driver, ArgumentArray $args)
 {
     $sql = "CREATE";
     if ($this->temporary) {
         $sql .= " TEMPORARY";
     }
     $sql .= " TABLE " . $driver->quoteIdentifier($this->tableName);
     $sql .= "(";
     $columnClauses = array();
     foreach ($this->columns as $col) {
         $sql .= "\n" . $col->toSql($driver, $args) . ",";
     }
     if ($constraints = $this->getConstraints()) {
         foreach ($constraints as $constraint) {
             $sql .= "\n" . $constraint->toSql($driver, $args) . ",";
         }
     }
     $sql = rtrim($sql, ',') . "\n)";
     if ($this->engine && $driver instanceof MySQLDriver) {
         $sql .= ' ENGINE=' . $this->engine;
     }
     return $sql;
 }
Пример #9
0
 public function toSql(BaseDriver $driver, ArgumentArray $args)
 {
     return 'RENAME TO ' . $driver->quoteIdentifier($this->toTable);
 }
Пример #10
0
 public function toSql(BaseDriver $driver, ArgumentArray $args)
 {
     $sql = 'ALTER TABLE ' . $driver->quoteIdentifier($this->table) . ' ';
     $alterSpecSqls = array();
     foreach ($this->specs as $spec) {
         $alterSpecSqls[] = $spec->toSql($driver, $args);
     }
     $sql .= join(",\n  ", $alterSpecSqls);
     return $sql;
 }
Пример #11
0
 public function toSql(BaseDriver $driver, ArgumentArray $args)
 {
     return 'DROP FOREIGN KEY ' . $driver->quoteIdentifier($this->fkSymbol);
 }
Пример #12
0
 protected function buildMySQLQuery(BaseDriver $driver, ArgumentArray $args)
 {
     $sql = 'CREATE';
     if ($this->type) {
         // validate index type
         $sql .= ' ' . $this->type;
     }
     $sql .= ' INDEX';
     $sql .= ' ' . $driver->quoteIdentifier($this->name) . ' ON ' . $driver->quoteIdentifier($this->tableName);
     if (!empty($this->columns)) {
         $sql .= ' (' . join(',', $this->columns) . ')';
     }
     if ($this->method) {
         $sql .= ' USING ' . $this->method;
     }
     return $sql;
 }
Пример #13
0
 public function buildDefinitionSql(BaseDriver $driver, ArgumentArray $args)
 {
     $isa = $this->isa ?: 'str';
     $sql = '';
     $sql .= $driver->quoteIdentifier($this->name);
     $sql .= $this->buildTypeClause($driver);
     $sql .= $this->buildUnsignedClause($driver);
     $sql .= $this->buildNullClause($driver);
     $sql .= $this->buildDefaultClause($driver);
     $sql .= $this->buildPrimaryKeyClause($driver);
     $sql .= $this->buildAutoIncrementClause($driver);
     $sql .= $this->buildUniqueClause($driver);
     if ($this->comment) {
         $sql .= ' COMMENT ' . $driver->deflate($this->comment);
     }
     return $sql;
 }
Пример #14
0
 public function toSql(BaseDriver $driver, ArgumentArray $args)
 {
     return 'DROP INDEX ' . $driver->quoteIdentifier($this->indexName);
 }
Пример #15
0
 public function getExplicitColumnSelect(BaseDriver $driver)
 {
     $alias = $this->getAlias();
     return array_map(function ($name) use($alias, $driver) {
         return $alias . '.' . $driver->quoteIdentifier($name);
     }, $this->getSchema()->getColumnNames());
 }
Пример #16
0
 public function toSql(BaseDriver $driver, ArgumentArray $args)
 {
     $sql = 'DROP COLUMN ';
     $sql .= $driver->quoteIdentifier($this->column->name);
     return $sql;
 }
Пример #17
0
 public function buildKeyClause(BaseDriver $driver, ArgumentArray $args)
 {
     $sql = $this->keyType;
     // MySQL supports custom index name and index type
     if ($driver instanceof MySQLDriver) {
         if ($this->indexName) {
             $sql .= ' ' . $driver->quoteIdentifier($this->indexName);
         }
         if ($this->indexType) {
             $sql .= ' USING ' . $this->indexType;
         }
     }
     $sql .= ' (' . $this->keyColumns->toSql($driver, $args) . ')';
     if ($this->references) {
         $sql .= ' ' . $this->references->toSql($driver, $args);
     }
     return $sql;
 }
Пример #18
0
 public function toSql(BaseDriver $driver, ArgumentArray $args)
 {
     $sql = 'CREATE DATABASE';
     if ($this->ifNotExists && $driver instanceof MySQLDriver) {
         $sql .= ' IF NOT EXISTS';
     }
     $sql .= ' ' . $driver->quoteIdentifier($this->dbName);
     if ($driver instanceof MySQLDriver) {
         if ($this->characterSet) {
             $sql .= ' CHARACTER SET ' . $driver->quote($this->characterSet);
         }
         if ($this->collate) {
             $sql .= ' COLLATE ' . $driver->quote($this->collate);
         }
     } elseif ($driver instanceof PgSQLDriver) {
         /**
          * PostgreSQL properties
          */
         if ($this->owner) {
             $sql .= ' OWNER ' . $driver->quote($this->owner);
         }
         if ($this->template) {
             $sql .= ' TEMPLATE ' . $driver->quote($this->template);
         }
         if ($this->encoding) {
             $sql .= ' ENCODING ' . $driver->quote($this->encoding);
         }
         if ($this->collate) {
             $sql .= ' LC_COLLATE ' . $driver->quote($this->collate);
         }
         if ($this->ctype) {
             $sql .= ' LC_CTYPE ' . $driver->quote($this->ctype);
         }
         if ($this->tablespace) {
             $sql .= ' TABLESPACE ' . $driver->quote($this->tablespace);
         }
         if ($this->connectionLimit) {
             $sql .= ' CONNECTION LIMIT ' . $this->connectionLimit;
         }
     }
     return $sql;
 }
Пример #19
0
 public function getIdentitySql(BaseDriver $driver, ArgumentArray $args)
 {
     return $driver->quoteIdentifier($this->getAccount()) . '@' . $driver->quoteIdentifier($this->getHost());
 }