Laravel连接错误

时间:2015-07-10 16:43:26

标签: php laravel

我最终使用mysql而不是mssql建立了连接,因为它无法正常工作(我正在使用laravel)。但现在它还没有用。我收到错误:

SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected (SQL: create table `users` (`id` int unsigned not null auto_increment primary key, `username` varchar(32) not null, `email` varchar(320) not null, `password` varchar(60) not null, `created_at` timestamp default 0 not null, `updated_at` timestamp default 0 not null) default character set utf8 collate utf8_unicode_ci)

我使用wamp服务器连接到我的localhost。这是我的代码:

> 'mysql' => [
>             'driver'    => 'mysql',
>             'host'      => env('localhost'),
>             'database'  => env('test'),
>             'username'  => env('root'),
>             'password'  => env(''),
>             'charset'   => 'utf8',
>             'collation' => 'utf8_unicode_ci',
>             'prefix'    => '',
>             'strict'    => false,
>         ],

我的环境:

'default' => env('mysql', 'mysql'),

修改

.ENV:

DB_HOST=localhost
DB_DATABASE=test
DB_USERNAME=root
DB_PASSWORD=

2 个答案:

答案 0 :(得分:0)

语法env('key','default')

key在env文件中的键之前是关键

如果密钥不存在于env文件中,则

default是默认值

请编辑如下:

> 'mysql' => [
>             'driver'    => 'mysql',
>             'host'      => env('DB_HOST', 'localhost'),
>             'database'  => env('DB_DATABASE','db_name'),
>             'username'  => env('DB_USERNAME','root'),
>             'password'  => env('DB_PASSWORD',''),
>             'charset'   => 'utf8',
>             'collation' => 'utf8_unicode_ci',
>             'prefix'    => '',
>             'strict'    => false,
>         ],

P / s:对不起我的英语。

答案 1 :(得分:0)

.env文件

DB_HOST=localhost
DB_DATABASE=dbname
DB_USERNAME=dbusername
DB_PASSWORD=dbpassword

config / database.php

 'mysql' => [
            'driver'    => 'mysql',
            'host'      => env('DB_HOST', 'localhost'),
            'database'  => env('DB_DATABASE', 'databasename'),
            'username'  => env('DB_USERNAME', 'dbusername'),
            'password'  => env('DB_PASSWORD', 'dbpassword'),
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
        ],

正如您在database.php env('DB_DATABASE', 'databasename'),中看到的那样,检查.env文件中的DB_DATABASE值,如果未找到或设置,请使用您提供的databasename参数。

在您的情况下,env的语法被搞砸了,这可能导致错误。实际上,如果你有.env文件,你根本不需要编辑它。或者您可以避免使用.env文件,并在所述语法中提供database.php中的数据,而不是您当前使用的数据。

注意:.env文件具有第一优先级,如果您在database1文件中使用提及.env并在database2文件中提及database.php,{ {1}}将被使用。