博客列表 >查询构造器中的10个最常用的方法——2018年5月23日

查询构造器中的10个最常用的方法——2018年5月23日

Y的博客
Y的博客原创
2018年05月27日 17:44:411220浏览

Table(),field(),order(),where(),limit(),insert(),insertAll(),update(),delete(),以及如何获取自增主键和数据打包方法data():

实例

<?php
namespace app\index\controller;
use \think\Db;

class Demo 
{
	public function find()
	{
		//测试数据库是否连接成功
		//dump(\think\Db::query("select * from staff"));
		//table()获取表明,find()获取满足条件的第一条。
		//查询单条记录
		$res = Db::table('staff')
		->field(['name'=>'姓名','sex'=>'性别','salary'=>'工资'])
		->where('staff_id','=',5)//wherr('字段','表达式','条件')
		->find();

		dump($res);
	}
	public function select()
	{
		//查询满足条件的多条记录
		$res = Db::table('staff')
		->where('salary'>3000)
		->order('salary DESC')
		->limit(2)
		->select();

		dump($res);
	}
	public function insert()
	{
		//新增单条记录insert()
		// $data = 
		// [
		// 	'name' => '好嫂子',
		// 	'age' => '32',
		// 	'sex' => '1',
		// 	'salary' => 6000

		// ];
		// $res = Db::table('staff')->insert($data);
		// $id = Db::getlastInsID();
		// return $res ? '添加成功,id='.$id :'没有添加成功';

		//推荐使用data()方法将要新增的记录进行打包,尽量不要在最终方法中传入参数
		//新增多条记录 insertAll(),语法与新增单条基本一致
		//新增多条记录,返回新增记录的数量
		$data = [
			['name'=>'田老师', 'age'=>30, 'sex'=>1, 'salary'=>7000],
			['name'=>'杨国福', 'age'=>50, 'sex'=>0, 'salary'=>6400],
			['name'=>'铁木真', 'age'=>34, 'sex'=>0, 'salary'=>5400],
		
		];
		$res = Db::table('staff')->data($data)->insertAll();
		return  $res ? '添加成功'.$res.'条记录' : '没有记录被添加';

	}

	public function update()
	{
		//更新操作必须是基于前置查询,不允许无条件更新
		//更新操作使用的是update()方法
		
		//例如:将工资小于等于5000的,加薪1000
		$num = Db::table('staff')
		->where('salary','<=','7000')
		->data(['salary'=>DB::raw('salary+1000')])
		->update();

		return $num ? '更新成功'.$num.'条记录~~' : '没有记录被更新';
	}
	public function delete()
	{
		//删除也更新操作一样,也必须是基于前置查询,绝不允许无条件删除
		//删除操作使用:delete()方法
		//$num = DB::table('staff')->delete(8);
		// $num = Db::table('staff')->delete([12,14,18]);//多个主键使用数组传入
		$num = DB::table('staff')->where('salary','>','40000')->delete();
		//如果想删除全部记录,可直接给delete()方法传入true: delete(true)
		//$num = Db::table('staff')->delete(true);  
		return $num ? '删除成功'.$num.'条记录~~' : '没有记录被删除';
	}
}

运行实例 »

点击 "运行实例" 按钮查看在线实例


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议