如何创建Yii2格式的数据库

如何创建Yii2格式的数据库,yii2,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: " . $c

我想用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方式来创建

不建议在运行时创建表。已设置架构并运行SQL/非SQL查询

为此,您需要在config文件夹中创建一个文件(比如
myDB.php
),并提供如下数据库详细信息:

<?php

return [
    'class' => 'yii\db\Connection',
    'dsn' => 'dblib:host=localhost;dbname=yourDBName',
    'username' => 'yourUsername',
    'password' => 'yourPassword',
    'charset' => 'utf8',
];
$query = 'select columnID from table where ID=:ID';
Yii::$app->my_db->createCommand($query)
                ->bindValue(':ID',1)
                ->queryOne();
在控制器中,按如下方式使用此数据库:

<?php

return [
    'class' => 'yii\db\Connection',
    'dsn' => 'dblib:host=localhost;dbname=yourDBName',
    'username' => 'yourUsername',
    'password' => 'yourPassword',
    'charset' => 'utf8',
];
$query = 'select columnID from table where ID=:ID';
Yii::$app->my_db->createCommand($query)
                ->bindValue(':ID',1)
                ->queryOne();

目前,您无法使用Yii2实现这一点。这是因为对于一个框架来说,让所有东西都在许多数据库引擎(MySQL、Oracle、MSSQL等)上工作太复杂了。编写代码的工作量太大,但可以使用您的查询完成功能


在我看来,使用当前数据库连接创建数据库没有什么错。这可以在SaaS多租户体系结构中找到,当一个新的客户端注册一个帐户,然后创建一个新的独立数据库来封装大部分内容/出于安全原因。

查看文档,我找不到一种方法可以像创建表一样在Yii2中创建数据库。谁否决了我的问题?为什么?对我来说,这似乎是一个合理的问题,不应该被否决。