我使用Laravel 5.5,我需要動態地更改數據庫,
例如,有兩個數據庫,db1
和db2
,還有每個數據庫中的表articles
。Laravel:未定義指數:司機
現在我想從db1
複製文章db2
,
在.env
文件,當前數據庫是db1
:
DB_DATABASE=db1
我想複製記錄時,動態地改變它,我試着做它是這樣的:
public function test()
{
$articles=Article::all();
Config::set("database.connections.mysql", [
"host" => "127.0.0.1",
"database" => "db2",
"username" => "root",
"password" => ""
]);
//DB::purge('mysql'); //this line exists or not,it has the same error.
DB::table('articles')->insert($articles);
dd('ok');
}
但有一個錯誤:
Undefined index: driver
我有很多數據庫,所以我不想在.env
文件中更改它。
我該怎麼辦?
更新:
在config/database.php
它有兩個項目:
'default' => env('DB_CONNECTION', 'mysql'),
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
],
,我嘗試
Config::set("database.connections.mysql", [
'mysql' => [
"host" => "127.0.0.1",
"database" => "db2",
"username" => "root",
"password" => ""
]
]);
錯誤依然存在。
你有沒有在** config/database.php **中檢查''default'=> env('DB_CONNECTION','mysql')'? –
@Sagar Gautam它有這個項目。 – zwl1619
一種方法是使用DB :: connection()創建與數據庫的新連接。 –