难以执行 laravel 5.2 数据库查询
Difficulty in executing laravel 5.2 database query
这可能是个愚蠢的问题,但由于我是 laravel 的新手,我发现设置数据库有些困难。我正在使用 laravel 5.2。在配置>database.php 这些是我的设置
'default' => env('DB_CONNECTION', 'mysql'),
对于mysql:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'larasite'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
然后我也更改了 .env 和 .env.example 文件的设置
DB_HOST=localhost
DB_DATABASE=larasite
DB_USERNAME=root
DB_PASSWORD=""
现在在 routes.php 我有这个代码:
Route::get('about', function(){
$posting = DB::query('select * from posts');
dd($posting);
});
然后当我访问 localhost:8000/about 时出现以下错误。
Builder {#118 ▼
#connection: MySqlConnection {#114 ▶}
#grammar: MySqlGrammar {#115 ▶}
#processor: MySqlProcessor {#116}
#bindings: array:6 [▶]
+aggregate: null
+columns: null
+distinct: false
+from: null
+joins: null
+wheres: null
+groups: null
+havings: null
+orders: null
+limit: null
+offset: null
+unions: null
+unionLimit: null
+unionOffset: null
+unionOrders: null
+lock: null
#backups: []
#bindingBackups: []
#operators: array:26 [▶]
#useWritePdo: false
}
我注意到,即使我更改设置并输入错误的详细信息,我也会得到同样的错误。发生了什么?如何解决?
这不是错误,这是您分配给 $posting
变量的查询生成器实例的转储。您必须使用 get
方法实际从数据库中获取数据,而且您应该只使用简单的 table
方法,因为查询的其余部分将由查询生成器生成。
下面的代码将 return posts
table 中的所有条目:
Route::get('about', function(){
$posting = DB::table('posts')->get();
dd($posting);
});
您应该从头到尾阅读 Query Builder Documentation 以更好地理解它的工作原理。只读它的点点滴滴要容易得多,而且读起来不是很长。
这可能是个愚蠢的问题,但由于我是 laravel 的新手,我发现设置数据库有些困难。我正在使用 laravel 5.2。在配置>database.php 这些是我的设置
'default' => env('DB_CONNECTION', 'mysql'),
对于mysql:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'larasite'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
然后我也更改了 .env 和 .env.example 文件的设置
DB_HOST=localhost
DB_DATABASE=larasite
DB_USERNAME=root
DB_PASSWORD=""
现在在 routes.php 我有这个代码:
Route::get('about', function(){
$posting = DB::query('select * from posts');
dd($posting);
});
然后当我访问 localhost:8000/about 时出现以下错误。
Builder {#118 ▼
#connection: MySqlConnection {#114 ▶}
#grammar: MySqlGrammar {#115 ▶}
#processor: MySqlProcessor {#116}
#bindings: array:6 [▶]
+aggregate: null
+columns: null
+distinct: false
+from: null
+joins: null
+wheres: null
+groups: null
+havings: null
+orders: null
+limit: null
+offset: null
+unions: null
+unionLimit: null
+unionOffset: null
+unionOrders: null
+lock: null
#backups: []
#bindingBackups: []
#operators: array:26 [▶]
#useWritePdo: false
}
我注意到,即使我更改设置并输入错误的详细信息,我也会得到同样的错误。发生了什么?如何解决?
这不是错误,这是您分配给 $posting
变量的查询生成器实例的转储。您必须使用 get
方法实际从数据库中获取数据,而且您应该只使用简单的 table
方法,因为查询的其余部分将由查询生成器生成。
下面的代码将 return posts
table 中的所有条目:
Route::get('about', function(){
$posting = DB::table('posts')->get();
dd($posting);
});
您应该从头到尾阅读 Query Builder Documentation 以更好地理解它的工作原理。只读它的点点滴滴要容易得多,而且读起来不是很长。