2016-09-26 6 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(); 

我々はDBを作成することができますが、私はそれが可能であるかどうかを知りたいYii2方式で

+0

ドキュメントを見ると、createTableのようにYii2でデータベースを作成する方法が見つかりませんでした。 – 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'), 

は、コントローラは、このDBを使用する:

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

現在、Yii2で行うことはできません。これは、フレームワークが多くのデータベースエンジン(MySQL、Oracle、MSSQLなど)ですべてを動作させるには複雑すぎるためです。コーディングには多大な労力を要しますが、クエリを使用して機能を実行することができます。

IMO、現在のdb接続を使用してデータベースを作成することには何も問題ありません。これは、SaaSマルチテナントアーキテクチャでは、新しいクライアントがアカウントを登録した後、ほとんどすべての/セキュリティの理由をカプセル化するために作成された新しい分離されたDBが見つかります。

関連する問題