我在使用我的laravel应用程序时随机收到这个错误:
SQLSTATE[3D0000]:无效的目录名称:1046未选择数据库
如果刷新浏览器,则不会出现此错误。这真的很奇怪,因为它前后都能正常工作。
我的数据库凭据存储在.env文件中
编辑
这里的内容我的文件:
APP_ENV=local
APP_DEBUG=true
APP_KEY=6cYKHzpblHGfE3H0n6j2tSRjoqJsgcqd
DB_HOST=localhost
DB_DATABASE=gestion-inscriptions-v2
DB_USERNAME=root
DB_PASSWORD=
编辑2这里是database.php:http://laravel.io/bin/bE95X
编辑3仍然有这个错误,即使在其他计算机上(使用wamp(
提前感谢
附言:我知道SO上已经有同样的问题了,但没有对我有效的正确答案,所以。。。
根据您向我们显示的config/database.php
和.env
文件,一切正常。
SQLSTATE[3D0000]:无效的目录名称:1046未选择数据库
这意味着未选择数据库,
数据库的存在似乎有问题,或者CCD_ 3没有进入配置CCD_ 4参数。
有一些步骤你必须检查:
1( 检查您的config/database.php
文件内容以获得这样的内容:
<?php
return [
'fetch' => PDO::FETCH_CLASS,
'default' => 'mysql',
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST'),
'database' => env('DB_DATABASE'),
'username' => env('DB_USERNAME'),
'password' => env('DB_PASSWORD'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false
],
'mysql2' => [
'driver' => 'mysql',
'host' => env('DB_HOST_ACADEMY'),
'database' => env('DB_DATABASE_ACADEMY'),
'username' => env('DB_USERNAME_ACADEMY'),
'password' => env('DB_PASSWORD_ACADEMY'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false
],
'mysql3' => [
'driver' => 'mysql',
'host' => env('DB_HOST_ACADEMY'),
'database' => env('DB_DATABASE_ACADEMY_DATE'),
'username' => env('DB_USERNAME_ACADEMY'),
'password' => env('DB_PASSWORD_ACADEMY'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false
]
],
'migrations' => 'migrations',
'redis' => [
'cluster' => false,
'default' => [
'host' => '127.0.0.1',
'port' => 6379,
'database' => 0
]
]
];
2( 检查你的.env
文件是否存在于你的应用程序根目录中,并且它不是.env.example
3( 检查.env
文件是否有此行,如果是,则从这里删除并复制粘贴(可能是拼写问题(:
DB_DATABASE=gestion-inscriptions-v2
p.s.因为在您的问题文件是正确的,需要更多的调试信息、屏幕截图等,以查看问题不是.env
或文件系统的问题(可能.env
文件无法读取(。
刚才我看到了那个问题,问题在中,没有保存.env文件(使用VS代码(