本文整理汇总了PHP中OC\DB\Connection::getDatabasePlatform方法的典型用法代码示例。如果您正苦于以下问题:PHP Connection::getDatabasePlatform方法的具体用法?PHP Connection::getDatabasePlatform怎么用?PHP Connection::getDatabasePlatform使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OC\DB\Connection
的用法示例。
在下文中一共展示了Connection::getDatabasePlatform方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: run
/**
* Fix mime types
*/
public function run()
{
if (!$this->connection->getDatabasePlatform() instanceof MySqlPlatform) {
$this->emit('\\OC\\Repair', 'info', array('Not a mysql database -> nothing to no'));
return;
}
$tables = $this->getAllNonUTF8BinTables($this->connection);
foreach ($tables as $table) {
$query = $this->connection->prepare('ALTER TABLE `' . $table . '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;');
$query->execute();
}
}
示例2: run
/**
* Fix mime types
*/
public function run(IOutput $output)
{
if (!$this->connection->getDatabasePlatform() instanceof MySqlPlatform) {
$output->info('Not a mysql database -> nothing to no');
return;
}
$tables = $this->getAllNonUTF8BinTables($this->connection);
foreach ($tables as $table) {
$output->info("Change collation for {$table} ...");
$query = $this->connection->prepare('ALTER TABLE `' . $table . '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;');
$query->execute();
}
}
示例3: dropTable
/**
* drop a table - the database prefix will be prepended
* @param string $tableName the table to drop
*/
public static function dropTable($tableName)
{
$tableName = OC_Config::getValue('dbtableprefix', 'oc_') . trim($tableName);
self::$connection->beginTransaction();
$platform = self::$connection->getDatabasePlatform();
$sql = $platform->getDropTableSQL($platform->quoteIdentifier($tableName));
self::$connection->query($sql);
self::$connection->commit();
}
示例4: generateChangeScript
/**
* @param \Doctrine\DBAL\Schema\Schema $schema
* @return string
*/
public function generateChangeScript($schema)
{
$script = '';
$sqls = $schema->toSql($this->conn->getDatabasePlatform());
foreach ($sqls as $sql) {
$script .= $sql . ';';
$script .= PHP_EOL;
}
return $script;
}
示例5: executeSchemaChange
/**
* @param \Doctrine\DBAL\Schema\Schema $schema
* @return bool
*/
private function executeSchemaChange($schema)
{
$this->conn->beginTransaction();
foreach ($schema->toSql($this->conn->getDatabasePlatform()) as $sql) {
$this->conn->query($sql);
}
$this->conn->commit();
if ($this->conn->getDatabasePlatform() instanceof SqlitePlatform) {
\OC_DB::reconnect();
}
return true;
}
示例6: run
/**
* Fix mime types
*/
public function run(IOutput $out)
{
if (!$this->connection->getDatabasePlatform() instanceof SqlitePlatform) {
return;
}
$sourceSchema = $this->connection->getSchemaManager()->createSchema();
$schemaDiff = new SchemaDiff();
foreach ($sourceSchema->getTables() as $tableSchema) {
$primaryKey = $tableSchema->getPrimaryKey();
if (!$primaryKey) {
continue;
}
$columnNames = $primaryKey->getColumns();
// add a column diff for every primary key column,
// but do not actually change anything, this will
// force the generation of SQL statements to alter
// those tables, which will then trigger the
// specific SQL code from OCSqlitePlatform
try {
$tableDiff = new TableDiff($tableSchema->getName());
$tableDiff->fromTable = $tableSchema;
foreach ($columnNames as $columnName) {
$columnSchema = $tableSchema->getColumn($columnName);
$columnDiff = new ColumnDiff($columnSchema->getName(), $columnSchema);
$tableDiff->changedColumns[] = $columnDiff;
$schemaDiff->changedTables[] = $tableDiff;
}
} catch (SchemaException $e) {
// ignore
}
}
$this->connection->beginTransaction();
foreach ($schemaDiff->toSql($this->connection->getDatabasePlatform()) as $sql) {
$this->connection->query($sql);
}
$this->connection->commit();
}