数据库操作之原生sql操作
<?php namespace app\index\controller; use think\Db; class Index { public function index() { echo "hello world"; } public function sqlAdd(){ //插入数据 $result=Db::execute(\'insert into think_test (name,state) values("周杰伦",1)\'); var_dump($result);//返回受影响的行数 } public function sqlUpd(){ //修改数据 $result=Db::execute(\'update think_test set name="张学友",state=0 where id=1\'); var_dump($result);//返回受影响的行数 } public function sqlDel(){ //删除数据 $result=Db::execute(\'delete from think_test where id=1\'); var_dump($result);//返回受影响的行数 } public function sqlSel(){ //查询数据 $result=Db::query(\'select * from think_test\'); var_dump($result);//返回数组 } }
数据库操作之查询构造器
//==========================查询构造器========================== public function tabAdd(){ //插入数据 如果不写表前缀 把table改为name即可 $result=Db::table(\'think_test\')->insert([\'name\'=>\'段誉\',\'state\'=>1]); var_dump($result); } public function tabUpd(){ //修改数据 如果不写表前缀 把table改为name即可 $result=Db::table(\'think_test\')->where(\'id\',9)->update([\'name\'=>\'虚竹\']); var_dump($result); } public function tabDel(){ //删除数据 如果不写表前缀 把table改为name即可 $result=Db::table(\'think_test\')->where(\'id\',9)->delete(); var_dump($result); } public function tabSel(){ //查询数据 如果不写表前缀 把table改为name即可 $result=Db::table(\'think_test\')->select(); var_dump($result); } //使用助手函数db public function dbSel(){ $db=db(\'test\');//参数为表名 $result=$db->select(); var_dump($result); //其他操作类似 //ps:助手函数db默认每次都会重新连接数据库,所以不推荐使用 } //链式操作 public function linkSel(){ $list=Db::name(\'test\') ->where(\'state\',1) ->field([\'name\',\'state\']) ->order(\'id\',\'desc\') ->limit(10) ->select(); var_dump($list); //ps:链式操作select() 要在最后 其他条件顺序无所谓 //更多方法请查询手册 }
数据库操作之模型
<?php namespace app\index\controller; use app\index\model\User as UserModel; class User { //==========================模型========================== /*模型是一种对象关系映射简称ORM,一般来说每个数据表会和一个模型对应 ,模型不是简单的CURD操作,那种用Db类即可,模型的Db类的区别在于,模型 查询返回的是对象,Db查询返回的是数组,模型是比Db类更高级的数据封装 */ //插入数据属性 public function add1(){ $user = new UserModel(); $user->name = \'郭靖\'; $user->email = \'guojing@qq.com\'; $user->birthday = strtotime(\'2000-1-1\'); if($user->save()){ return \'插入成功\'; }else{ return \'插入失败\'; } } //插入数据数组 public function add2(){ $user[\'name\'] = \'黄蓉\'; $user[\'email\'] = \'huangrong@qq.com\'; $user[\'birthday\'] = strtotime(\'2003-1-1\'); if(UserModel::create($user)){ return \'插入成功\'; }else{ return \'插入失败\'; } } //插入数据多条 public function addList(){ $user = new UserModel(); $list = [ [\'name\'=>\'张三\',\'email\'=>\'zhangsan@qq.com\',\'birthday\'=>strtotime(\'2000-1-1\')], [\'name\'=>\'李四\',\'email\'=>\'lishi@qq.com\',\'birthday\'=>strtotime(\'2005-1-1\')] ]; if($user->saveAll($list)){ return \'插入成功\'; }else{ return \'插入失败\'; } } //更新数据 查找并更新 public function upd1(){ $user = UserModel::get(1);//参数为id // var_dump($user); $user->name = \'刘德华\'; $user->email = \'liudehua@qq.com\'; if($user->save()){ return \'更新成功\'; }else{ return \'更新失败\'; } } //更新数据 直接更新 public function upd2(){ $user = new UserModel(); $user -> save([\'name\'=>\'郭富城\',\'email\'=>\'guofucheng@qq.com\'],[\'id\'=>1]); } //更新数据 多条 public function upd3(){ $user = new UserModel(); $list=[ [\'id\'=>1,\'name\'=>\'张三丰\',\'email\'=>\'zsf@qq.com\'], [\'id\'=>2,\'name\'=>\'欧阳锋\',\'email\'=>\'oyf@qq.com\'] ]; if($user->saveAll($list)){ return \'更新成功\'; }else{ return \'更新失败\'; } } //查询数据 id public function select1(){ $user = UserModel::get(1); echo $user->name.\'<br/>\'; echo $user->email.\'<br/>\'; echo $user->birthday.\'<br/>\'; } //查询数据 数组 public function select2(){ $user = UserModel::get([\'name\'=>\'张三\']); echo $user->name.\'<br/>\'; echo $user->email.\'<br/>\'; echo $user->birthday.\'<br/>\'; } //查询数据 public function select3(){ $user = new UserModel(); $result = $user->where(\'name\',\'张三\')->find(); echo $result->birthday; } //查询数据 多个数据 public function selectAll(){ $list = UserModel::all([1,2,3]); foreach ($list as $key => $value) { echo $value->name.\'<br/>\'; echo $value->email.\'<br/>\'; echo $value->birthday.\'<br/>\'; } } }