之因此从20天才开始写随笔记是由于以前没搞本身的博客数据库
从20天开始记录我在ThinkPHP中的点点滴滴this
/**事务操做*/ //startTrans启动事务、rollback回调、commit提交 //使用场景:交易系统 Db::startTrans(); $row = Db::name("users")->dec('count',50)->where('userID',28)->update(); if($row !== false){ $row1 = Db::name("users")->inc('count',50)->where('userID',13)->update(); if($row1!==false){ $result = Db::name("users")->field('count')->where('userID',28)->find(); if ($result['count']>=0){ Db::commit();//提交事务,交易成功 echo "交易成功!!!"; }else{ Db::rollback(); echo "交易失败,您的余额已不足请及时充值!!!"; } }else{ Db::rollback();//回调,交易失败 echo "交易失败!!!"; } }else{ Db::rollback();//交易失败 echo "交易失败!!!"; }
//在执行数据库操做触发的事件,如在查询数据前插入一条数据 //一、查询前回调:before_select 、before_find //二、插入成功后回调:after_insert //三、更新成功后回调:after_update //四、删除成功后回调:after_delete // 注册一个事件,查询以前调用add方法 Db::event('before_select',[$this,'add']); $data = Db::name("users")->select(); dump($data);
// add方法
public function add(){
$date = [
'userName' => '小铭',
'password' => 'MingGyGy'
];
$siz = Db::name("users")->insert($date);
dump($siz);
/*$result = Db::name("users")->data($date)->where("userID","=",21)->update();
dump($result);*/
}
模型中的方法:spa
//定义一个关联方法 使用对应的模型名称 对应的表名称 public function grade(){ /** * // hasOne()方法 * 第一个参数是须要关联的模型名称 * 第二个参数是关联外键名称 默认为:表名_id * 第三个参数是当前主键名称 默认自动获取,也可手动设置 */ return $this->hasOne('Grade'); }
控制器中的方法:code
public function join(){ $teache = Teacher::get(1); //获得教师表的对象 $grade = $teache->grade;//grade为对应的模型方法 得到班级的对象 echo $teache->name."老师所带的班级:".$grade->name.$grade->id."班"; }
public function join(){ //实例化教师表 $teacher = new Teacher; //教师表数据 $tDate = [ "name" => "王富贵" ]; //班级表数据 $gDate = [ "Grade" => [ 'id' => '1704', 'name' => '电商' ] ]; $teacher->together($gDate)->save($tDate); }
public function join(){ $teacher = Teacher::get(4); $teacher->name = "二哈"; //更新班级数据 $teacher->grade->name = '软件1701'; $teacher->together('grade')->save(); }
public function join(){ $teacher = Teacher::get(4); $teacher->delete(); //删除老师数据 $teacher->grade->delete(); //删除班级数据 }