2016-09-07 87 views
1

我用同样的问题,在这个问题Yii2 Create Database Connection给出的代码。如何在没有Yii2配置文件的情况下连接数据库?

我意识到$config变量不再是web.php文件中的“config”文件夹中的变量,并且他在Configuration::setConfig()函数中更改$config

我为那些比我更有经验的问题在Yii中是我应该怎么写

  • db领域web.php文件(或在db.php中的文件),以“创建数据库连接以编程方式不使用配置文件“?
  • 在函数Configuration::setConfig()中正确配置应用程序?

对不起,如果我的问题不够清楚。如有需要,请在评论中询问详情。谢谢!

+0

我应该指出,如果我有一个有效的初始数据库在db.php中文件中设置和注释配置::调用setConfig()行,它工作得很好。它使用表单中设置的新数据库更改初始数据库。 – mada

回答

2

您可以定义一个新的连接这样

$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(); 

你可以看看这个文档和指导

http://www.yiiframework.com/doc-2.0/guide-db-dao.html

http://www.yiiframework.com/doc-2.0/yii-db-connection.html

+0

谢谢你的回答!我正在设置我的连接在控制器中,如在我的问题中的代码引用。问题是如何不在bootstap阶段连接到数据库。如何在配置文件中没有设置连接的情况下启动应用程序? – mada

+0

如果您没有为db设置任何组件,您可以启动应用程序,而无需进行任何db ..connection设置.. – scaisEdge

+0

非常感谢您的帮助! 所以,第一步,我开始没有数据库组件的应用程序。我填写表单,在控制器中打开数据库连接并将其设置为应用程序的组件。然后我重定向到具有模型Gridview的索引页面。即使我已经将它设置在控制器中,我也会得到没有数据库组件的错误。我应该如何避免这种情况? – mada

相关问题