如何在没有Yii2配置文件的情况下连接数据库?
我用同样的问题,在这个问题Yii2 Create Database Connection给出的代码。如何在没有Yii2配置文件的情况下连接数据库?
我意识到$config
变量不再是web.php文件中的“config”文件夹中的变量,并且他在Configuration::setConfig()
函数中更改$config
。
我为那些比我更有经验的问题在Yii中是我应该怎么写
- 在
db
领域web.php文件(或在db.php中的文件),以“创建数据库连接以编程方式不使用配置文件“? - 在函数
Configuration::setConfig()
中正确配置应用程序?
对不起,如果我的问题不够清楚。如有需要,请在评论中询问详情。谢谢!
您可以定义一个新的连接这样
$db = new yii\db\Connection([ 'dsn' => 'mysql:host=localhost;dbname=example', 'username' => 'root', 'password' => '', 'charset' => 'utf8', ]); and $db->open();
数据库建立连接后,就可以执行SQL语句 像下面如:
$command = $db->createCommand('SELECT * FROM post'); $posts = $command->queryAll(); or $command = $connection->createCommand('UPDATE post SET status=1'); $command->execute();
你可以看看这个文档和指导
谢谢你的回答!我正在设置我的连接在控制器中,如在我的问题中的代码引用。问题是如何不在bootstap阶段连接到数据库。如何在配置文件中没有设置连接的情况下启动应用程序? – mada
如果您没有为db设置任何组件,您可以启动应用程序,而无需进行任何db ..connection设置.. – scaisEdge
非常感谢您的帮助! 所以,第一步,我开始没有数据库组件的应用程序。我填写表单,在控制器中打开数据库连接并将其设置为应用程序的组件。然后我重定向到具有模型Gridview的索引页面。即使我已经将它设置在控制器中,我也会得到没有数据库组件的错误。我应该如何避免这种情况? – mada
我应该指出,如果我有一个有效的初始数据库在db.php中文件中设置和注释配置::调用setConfig()行,它工作得很好。它使用表单中设置的新数据库更改初始数据库。 – mada