【问题标题】:Laravel : random error : SQLSTATE[3D000]: Invalid catalog name: 1046 No database selectedLaravel:随机错误:SQLSTATE [3D000]:无效的目录名称:1046 未选择数据库
【发布时间】:2016-12-15 12:26:08
【问题描述】:

我在使用我的 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 上已经有相同的问题,但没有适合我的正确答案,所以......

【问题讨论】:

  • 你能显示你的config/database.php文件的内容吗?
  • 完成! :) 我在本地工作
  • 这不是你的config/database.php文件,而是你的.env文件。
  • xD 抱歉,已经完成了

标签: php laravel pdo laravel-5


【解决方案1】:

根据config/database.php.env 文件,您向我们展示一切正常。

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

这意味着没有选择数据库,
似乎存在数据库存在问题, 或DB_NAME 未进入配置database 参数。

您需要检查一些步骤:

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.因为在 Your question files are correct 中需要更多调试信息、屏幕截图等才能看到问题不在于 .env 或文件系统(可能无法读取 .env 文件)。

【讨论】:

    【解决方案2】:

    刚才我看到了这个问题,问题出在 not saved .env 文件中(使用了 VS 代码)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-14
      • 1970-01-01
      • 2021-12-08
      • 2015-04-29
      相关资源
      最近更新 更多