2016-09-07 43 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

相關問題