如何以Yii2格式创建数据库

时间:2016-09-26 13:08:58

标签: 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方式

2 个答案:

答案 0 :(得分: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();

答案 1 :(得分:0)

目前你无法用Yii2做到这一点。这是因为一个框架的复杂性太大,使得一切都可以在许多数据库引擎(MySQL,Oracle,MSSQL等)上运行。编写代码太多,但可以使用您的查询完成功能。

IMO,使用当前数据库连接创建数据库没有任何问题。这可以在SaaS多租户架构中找到,当一个新客户注册一个帐户,然后创建一个新的分离DB来封装大部分内容/安全原因。