2016-09-26 64 views
0

我想用yii2創建數據庫。如何以Yii2格式創建數據庫

$servername = "localhost"; 
$username = "username"; 
$password = "password"; 

// Create connection 
$conn = new mysqli($servername, $username, $password); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

// Create database 
$sql = "CREATE DATABASE myDB"; 
if ($conn->query($sql) === TRUE) { 
    echo "Database created successfully"; 
} else { 
    echo "Error creating database: " . $conn->error; 
} 

$conn->close(); 

有了這個代碼,我們可以創建數據庫,但我想知道是否有可能在Yii2方式

+0

看着文檔,我找不到一種方法可以在Yii2中創建數據庫,就像createTable一樣。 – zedfoxus

+1

誰投了我的問題?爲什麼? –

+0

對我來說這似乎是一個合理的問題,不應該被低估。 – zedfoxus

回答

0

Yii2提供DAO(數據庫訪問對象)建立在PDO之上。 Yii2 DAO提供了一個面向對象的API來訪問關係數據庫。在提供的API中,還提供了用於處理數據庫模式的API

使用數據庫模式 Yii DAO提供了一整套方法來讓您操縱數據庫模式,例如創建新表格,從表格中刪除列等列出這些方法如下:

createTable(): creating a table 
renameTable(): renaming a table 
dropTable(): removing a table 
truncateTable(): removing all rows in a table 
addColumn(): adding a column 
renameColumn(): renaming a column 
dropColumn(): removing a column 
alterColumn(): altering a column 
addPrimaryKey(): adding a primary key 
dropPrimaryKey(): removing a primary key 
addForeignKey(): adding a foreign key 
dropForeignKey(): removing a foreign key 
createIndex(): creating an index 
dropIndex(): removing an index 

你可以在http://www.yiiframework.com/doc-2.0/guide-db-dao.htmlhttp://www.yiiframework.com/doc-2.0/guide-db-dao.html#database-schema

0

它不建議創建在運行時表有用的信息。已經建立模式並運行你的SQL /非SQL查詢。

對於這一點,你需要在你的config文件夾中創建如下文件(比如myDB.php),並提供數據庫詳細信息:下面一行

<?php 

return [ 
    'class' => 'yii\db\Connection', 
    'dsn' => 'dblib:host=localhost;dbname=yourDBName', 
    'username' => 'yourUsername', 
    'password' => 'yourPassword', 
    'charset' => 'utf8', 
]; 

註冊這個數據庫在你web.php.Add:

'my_db' => require(__DIR__ . '/myDB.php'), 

在控制器,如下使用該分貝:

$query = 'select columnID from table where ID=:ID'; 
Yii::$app->my_db->createCommand($query) 
       ->bindValue(':ID',1) 
       ->queryOne(); 
0

目前沒有辦法通過Yii2來做到這一點。這是因爲一個框架在許多數據庫引擎(MySQL,Oracle,MSSQL等)上都可以工作的複雜性太大。編碼過多,但功能可以通過查詢完成。

IMO,使用當前數據庫連接創建數據庫沒有任何問題。這可以在SaaS多租戶體系結構中找到,當一個新客戶註冊一個賬戶時,然後創建一個新的分離數據庫來封裝大部分所有/安全原因。