作业:手写控制器中的CURD操作

原创 2018-11-15 16:31:26 246
摘要:<?php namespace app\index\controller; use think\Db; class Test{ public function find(){ // $res=Db::table('staff')->find(1);//find()查询单条记录; // dump($res); //
<?php
namespace app\index\controller;
use think\Db;
class Test{
	public function find(){
//		$res=Db::table('staff')->find(1);//find()查询单条记录;
//		dump($res);
//		$res=Db::table('staff')
//			->field('name,sex,salary')//field(['name','salary','sex'])
//			->where('staff_id',1)
//			->find();
//		dump($res);

//		$res=Db::table('staff')
//			->field(['name'=>'姓名','sex'=>'性别','age'=>'年龄'])
//			->where('staff_id',1)
//			->find();
//		dump($res);
	
	}
	
	//多条记录的查询
	public function select(){
		$res=Db::table('staff')
			->field('name','salary')
			->where('salary','>',3000)//传入表达式参数 
			->order('salary','DESC')//order支持字符串,也支持数组
			->limit(5)
			->select();
		dump($res);
	}
	
	public function insert(){
		$data=[
			'name'=>'betty',
			'sex'=>0,
			'age'=>49,
			'salary'=>5300
		];
		//$num=Db::table('staff')->insert($data);
		//$id=Db::getLastInsID();
		//return $num ? '添加成功,id='.$id :'没有记录被添加';
	
	//推荐使用data()方法将要新增的的记录进行打包,尽量不要在最终方法中传入参数 
	$num=Db::table('staff')->data($data)->insert();
	$id=Db;;getLastInsID();
	return $num ? '添加成功,id='.$id: '没有记录被添加';
	
			//新增多条记录 insertAll(),语法与新增单条基本一致
		//新增多条记录,返回新增记录的数量
		$data = [
			['name' => '张飞','sex' => 0,'age' => 48,'salary' => 6900],
			['name' => '刘备','sex' => 1,'age' => 78,'salary' => 4500],
			['name' => '关羽','sex' => 0,'age' => 43,'salary' => 4700],
		];
		$num = Db::table('staff')->data($data)->insertAll();
		return $num ? '添加成功'.$num.'条记录~~' : '没有记录被添加';	
		
	}
	
	public function update(){
		$num=Db::table('staff')
			->where('salary','<=',4000)
			->data(['salary'=>Db::raw('salary+1000')])
			->update();
			
		$num=Db::table('staff')
			->update(['sex'=>1,'staff_id'=>19]);
	}
	
	public function delete(){
		$num=Db::table('staff')->where('salary','>',120000)->delete();
	}


}


find():查询单条记录;

select():查询多条记录:

insert():插入单条记录;

insertAll():插入多条记录;

update():更新记录;

delete():删除记录;

table():指定表名;

where():指定条件;

field():指定字段名;

order():指定排序;

limit():指定查询记录结果条数;

data():打包要操作的记录;

getLastInsID():获取最后一个受影响记录主键;

insertGetId():插入并获取主键。

在实际开发过程中,尽量不要直接操作数据库,使用模型来操作。

删除是及其危险的操作,使用更新来模拟删除。


批改老师:查无此人批改时间:2018-11-15 16:37:46
老师总结:嗯,对的,删除可以用更改状态来做,这样就避免删除数据了。

发布手记

热门词条