【发布时间】:2020-10-03 07:25:50
【问题描述】:
这是我指定的数据库连接。
'mysql_test' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database'=> '',
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
],
现在我正在尝试从代码中更改database 值,然后像这样连接到数据库
for( $i = 1; $i <=4 ; $i++)
{
$db='test_'.$i;
DB::connection('mysql_test')->statement('CREATE DATABASE '.$db.';' );
Config::set('database.connections.mysql_test.database' , $db);
error_log(config('database.connections.mysql_test.database'));
DB::reconnect('mysql_test');
error_log(DB::connection('mysql_test')->getDatabaseName());
}
config 值与第一个 error_log 一样发生变化,我正在更改 config 值。但是当我用更新的配置再次连接到同一个连接时,我没有得到我的数据库名称。连接未与任何数据库关联。
【问题讨论】:
-
更改 .env 文件中的数据库值,然后重新启动您的 artisan 服务器,然后检查它是否会更改。
-
我只想从代码中更改它,并且我没有运行工匠服务器。我已经发出了设置测试数据库的命令。
-
“当我再次连接时”这是什么意思,在什么情况下? ...进程之间不共享运行时更改
-
我正在重新连接到数据库连接。为什么我们不能在同一进程上连接到不同的数据库连接? @lagabox
-
" 为什么我们不能在同一个进程上连接到不同的数据库连接?"我们可以在同一个进程上连接到不同的连接。
标签: php mysql database laravel laravel-5