1 配置信息
1.1配置目录:
config/database.php
1.2配置多个数据库
//默认的数据库
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
//更多配置
],
//可以创建更多的数据库
'mysql' => [
'driver' => 'mysql_2',
'host' => env('DB_HOST', '192.168.1.2'),
'port' => env('DB_PORT', '3306'),
//更多配置
],
2 使用DB门面进行基本操作
一旦你设置好了数据库连接,就可以使用 DB facade 来进行查找。DB facade 提供每个类型的查找方法:select、update、insert、delete、statement。
2.1增->
DB::insert('insert into users (id, name) values (?, ?)', [1, 'Dayle']);
2.2删->
$deleted = DB::delete('delete from users');
返回值:删除的行数将会被返回
2.3改->
$affected = DB::update('update users set votes = 100 where name = ?', ['John']);
返回值:该方法会返回此声明所影响的行数
2.4查->
$users = DB::select('select * from users where active = ?', [1]);
返回值:方法总会返回结果的数组数据。数组中的每个结果都是一个 PHP StdClass 对象,这使你能够访问到结果的值:
访问方法:
foreach ($users as $user) {
echo $user->name;
}
2.5事务处理->
//自动
DB::transaction(function () {
DB::table('users')->update(['votes' => 1]);
DB::table('posts')->delete();
});
//手动(可配合try catch使用)
DB::beginTransaction();
if($someContion){
DB::rollback();
return false;
}
DB::commit();
2.6有时候一些数据库操作不应该返回任何参数。对于这种类型的操作,你可以在 DB facade 使用 statement 方法:
DB::statement('drop table users');
3 查询构造器
为什么要使用查询构造器?
1>因为数据库查询构造器提供了方便、流畅的接口,我们不需要再写原生的sql语句,通过查询构造器提供给我们的各种方法