Laravel:随机错误:SQLSTATE [3D000]:无效的目录名称:1046未选择数据库

时间:2016-08-09 12:41:04

标签: php laravel pdo laravel-5

使用我的laravel应用程序时,我随机收到此错误:

  

SQLSTATE [3D000]:无效的目录名称: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)

提前致谢

PS:我知道在SO上已经存在相同的问题,但没有正确的答案对我有用......

1 个答案:

答案 0 :(得分:0)

根据config/database.php.env文件,您告诉我们一切正常。

  

SQLSTATE [3D000]:无效的目录名称:1046未选择数据库

这意味着未选择数据库,
好像有数据库存在的问题, 或DB_NAME未进入config database param。

您需要检查一些步骤:

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



附:因为你的问题文件是正确的需要更多的调试信息,屏幕截图等,以查看问题不在.env或文件系统(可能无法读取.env文件)。