【发布时间】:2014-03-18 02:55:01
【问题描述】:
过去一个小时左右,我一直在努力让它工作。
当我尝试在 laravel 中执行查询时遇到错误。
具体错误如下:
exception 'PDOException' with message 'SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected' in D:\www\testapp\vendor\laravel\framework\src\Illuminate\Database\Connection.php:272
Stack trace:
#0 D:\www\testapp\vendor\laravel\framework\src\Illuminate\Database\Connection.php(272): PDO->prepare('select count(*)...')
#1 D:\www\testapp\vendor\laravel\framework\src\Illuminate\Database\Connection.php(521): Illuminate\Database\Connection->Illuminate\Database\{closure}(Object(Illuminate\Database\MySqlConnection), 'select count(*)...', Array)
#2 D:\www\testapp\vendor\laravel\framework\src\Illuminate\Database\Connection.php(277): Illuminate\Database\Connection->run('select count(*)...', Array, Object(Closure))
#3 D:\www\testapp\vendor\laravel\framework\src\Illuminate\Database\Query\Builder.php(1028): Illuminate\Database\Connection->select('select count(*)...', Array)
#4 D:\www\testapp\vendor\laravel\framework\src\Illuminate\Database\Query\Builder.php(1018): Illuminate\Database\Query\Builder->runSelect()
#5 D:\www\testapp\vendor\laravel\framework\src\Illuminate\Database\Query\Builder.php(1005): Illuminate\Database\Query\Builder->getFresh(Array)
#6 D:\www\testapp\vendor\laravel\framework\src\Illuminate\Database\Query\Builder.php(1369): Illuminate\Database\Query\Builder->get(Array)
#7 D:\www\testapp\vendor\laravel\framework\src\Illuminate\Database\Query\Builder.php(1311): Illuminate\Database\Query\Builder->aggregate('count', Array)
#8 [internal function]: Illuminate\Database\Query\Builder->count()
#9 D:\www\testapp\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Builder.php(786): call_user_func_array(Array, Array)
#10 D:\www\testapp\app\routes.php(67): Illuminate\Database\Eloquent\Builder->__call('count', Array)
#11 D:\www\testapp\app\routes.php(67): Illuminate\Database\Eloquent\Builder->count()
#12 [internal function]: {closure}()
#13 D:\www\testapp\vendor\laravel\framework\src\Illuminate\Routing\Route.php(80): call_user_func_array(Object(Closure), Array)
#14 D:\www\testapp\vendor\laravel\framework\src\Illuminate\Routing\Route.php(47): Illuminate\Routing\Route->callCallable()
#15 D:\www\testapp\vendor\laravel\framework\src\Illuminate\Routing\Router.php(1016): Illuminate\Routing\Route->run(Object(Illuminate\Http\Request))
#16 D:\www\testapp\vendor\laravel\framework\src\Illuminate\Foundation\Application.php(574): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#17 D:\www\testapp\vendor\laravel\framework\src\Illuminate\Foundation\Application.php(550): Illuminate\Foundation\Application->dispatch(Object(Illuminate\Http\Request))
#18 D:\www\testapp\public\index.php(50): Illuminate\Foundation\Application->run()
#19 {main}
我的 config/database.php 如下:
'connections' => array(
'mysql' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'testdatabase',
'username' => 'MYUSER',
'password' => 'MYPASSWORD',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
),
触发这个错误的代码是:
$users = DB::table('users')->get();
print_r($users . "users");
有人可以帮忙吗,我检查了给定 MySQL 用户的权限,我也用 root 帐户尝试过,但到目前为止无济于事。
【问题讨论】:
-
您确定指定的数据库存在吗?
-
尝试 127.0.0.1 作为主机一次
-
你有没有'default' => 'mysql',上面有'connections' => array( ... ?
-
这真的很奇怪,我只是设置了一个全新的 laravel 设置并要求它以相同的详细信息连接到同一个数据库并且它可以工作。它获取结果。我想知道其他设置有什么问题。 @marcanuy 是的,我确实在文件顶部有这个
-
我认为环境冲突可能存在问题 - 尝试从此文件中注释掉所有自定义环境,将
detectEnvironment方法留空并尝试它是否连接