Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:返回的结果类型一定要注意
获取到满足查询条件的所有数据,返回的是一个对象集合
$data = DB::table('admin')->limit(2)->get();
echo '<pre>';
print_r($data);
方法中传入参数,可以指定获取哪些字段
$data = DB::table('admin')->limit(2)->get(['username','email']);
echo '<pre>';
print_r($data);
获取到满足查询条件的第一条数据(也因为只返回一条数据,所以返回的是一个对象,而不是对象集合)
$data = DB::table('admin')->first();
echo '<pre>';
print_r($data);
传入参数,也能指定返回某些字段
// 当只有一个字段时,可以省略中括号
$data = DB::table('admin')->first('id');
当不只一个字段时,必须以数组的方式指定字段
$data = DB::table('admin')->first(['id','username']);
echo '<pre>';
print_r($data);
当然可以结合 where 等语句来书写查询条件
$data = DB::table('admin')->where('uid',1)->first(['id','username']);
echo '<pre>';
print_r($data);
获取某个字段的值,此方法也只会返回满足条件的第一条记录,不同之处在于不会返回对象,返回的直接是字段的值
$data = DB::table('users')->where('uid',1)->value('username');
echo '<pre>';
print_r($data);
根据指定的 id 返回一条数据 ,返回的当然是一个对象
$data = DB::table('admin')->find(2);
echo '<pre>';
print_r($data);
传入第二个参数,也可以指定返回字段
$data = DB::table('admin')->find(2,['username','email']);
echo '<pre>';
print_r($data);
返回数据表中单列值的集合对象
当只有一个参数时,对象中 items 属性对应的数组是一个索引数组,从0开始
$data = DB::table('admin')->pluck('username');
echo '<pre>';
print_r($data);
当传入第二个参数时,可以将数组转为关联数组,可使用数据表中的另一字段来表示数组的键名
$data = DB::table('admin')->pluck('username','email');
echo '<pre>';
print_r($data);
当然,在实际开发中,多会使用主键id来表示键名
$data = DB::table('users')->pluck('username','id');
echo '<pre>';
print_r($data);
求字段的最大值
$data = DB::table('admin')->max('age');
var_dump($data);
求字段的最小值
$data = DB::table('admin')->min('age');
var_dump($data);
求字段的平均值,返回的值会转为字符串类型
$data = DB::table('admin')->avg('uid');
var_dump($data);
求字段的值的总和,返回的值也会转为字符串类型
$data = DB::table('admin')->sum('age');
var_dump($data);
计算记录总数量,返回的是整型int
实际上count()
方法默认是计算的所有,即 count('*')
,你也可以指定其他字段,比如:count('id')
、count('age')
,但是效果都是一样的,执行效率上讲,也是差不多的,所以直接使用count()
即可
$data = DB::table('admin')->count();
计算符合某个查询条件的记录总数量:
$data = DB::table('admin')->where('uid',1)->count();
插入数据到数据表,注意是使用数组的方式,如果是多条插入,使用二维数组
插入一条记录:
public function insert(){
$data = DB::table('admin')->insert([
'username'=>'小明',
'password'=>md5(35453),
'age'=>23,
'email'=>'xiaoming@qq.com',
]);
var_dump($data);
}
插入多条记录:
public function insert(){
$data = [
['username'=>'小黄','password'=>md5('drts'),'age'=>21,'email'=>'xiaohuang@qq.com'],
['username'=>'小刘','password'=>md5('fghj'),'age'=>25,'email'=>'xiaoliu@qq.com'],
['username'=>'小张','password'=>md5('gfhut'),'age'=>32,'email'=>'xiaozhang@qq.com'],
];
$res = DB::table('admin')->insert($data);
var_dump($res);
}
更新数据,一定要指定更新条件
更新某一列的值:
public function update(){
$data = DB::table('admin')->where('isupdate',null)->update(['isupdate'=>'yes']);
var_dump($data);
}
更新指定数据的字段值:
public function update(){
$data = DB::table('admin')->where('id',12)->update([
'username'=>'我换名字了',
'email'=>'换邮箱了',
]);
var_dump($data);
}
删除数据,一定要指定删除条件
delete()
函数也可以传参,参数是id
,所以当我们要根据id
删除时,可以不使用where
来增加查询条件,但是要根据指定的其他字段删除时,就需要where
了
根据id
删除数据:
public function delete(){
$data = DB::table('admin')->delete(15);
var_dump($data);
}
根据其他字段删除数据:
$data = DB::table('admin')->where('username','小黄')->delete();
删除多条数据:
$data = DB::table('admin')->where('id','>=','12')->delete();