ThinkPHP學習筆記(八)CURD的的相關操作以及表的關聯查詢等
本節的使用基於六、七的基於資料庫的連結和conf的配置
主要是action中的curd的方法和update
action
之前,session和form中有//令牌可以在conf中配置;可以在版面設定不顯示令牌但是一樣使用令牌//如果頁面中有多個表單,只有一個表單需要令牌,可以在此表單中顯示指定://create預設擷取資料的方法是post方法public function index() {$this->display();}public function add(){$user=new Model('User');////不使用create方法驗證令牌//if (!$user->autoCheckToken($_POST)) {////令牌驗證失敗的代碼;//$this->error($user->getError());//}else{////擷取其中資訊$user//$user->username;//$user->username=md5($user->password);////dump($user);//if ($user->add()) {//$this->success('添加成功');//}else{//$this->error($user->getError());//}//}//返回的數組資訊如果用自動填滿,傳回值和資訊更多if ($vo=$user->create()) {////這個方法是執行成功的一個方法,會給出頁面的各種資訊//dump($vo);////successs模板可以在ThinkPHP的example中找到,放入到default中的public目錄中//$this->success('create成功');//擷取其中資訊$user$user->username=md5($user->password);//dump($user);if ($user->add()) {$this->success('添加成功');}else{$this->error($user->getError());}}else {//如果執行失敗,代碼不會繼續向後執行//dump($vo);//dump($user);//error模板可以在ThinkPHP的example中找到,放入到default中的public目錄中$this->error($user->getError());}}public function curd(){$user=M('user');//find()查詢單條記錄//select()查詢所有資訊//findAll()就是select的同名方法//$find=$user->find();//$select=$user->select();//$findAll=$user->findAll();//dump($find);//dump($select);//dump($findAll);//一:查詢涉及到一個連貫操作問題;手冊:5.3.10//1.根據條件進行查詢where中可以通過字串、數組、對象來傳值//函數有:data、where、limit、order、field、group、having(sql一致,二次過濾結果集)、page(多用pageView來進行分頁)//data方法可以被替代用於save當中傳值、add、delete的方法時//$select=$user->select(array('where'=>'id>1','limit'=>'2,8','order'=>'id desc'));//$select=$user->where('id=3')->find();//$select=$user->where('id>1')->limit('2')->order('id desc')->field('id,username')->select();//2.$user->table()用來操作多張表;也可以通過field來限制查詢列//$select=$user->table(array('tb_user'=>'user','tb_user_message'=>'m'))->where('user.id=m.id')->select();//$select=$user->table('tb_user user,tb_user_message m')->where('user.id=m.id')->select();//3.$user->join()//$select=$user->join('user on user.id=user_message.id')->select();//4.$user->distinct()//$select=$user->distinct(true)->select();//5.關聯模型:$user->relation()//6.鎖:$user->lock()//基本上可以不用考慮鎖機制(mysql5.0的myisam引擎支援表級鎖,innodB引擎支援行級鎖)//$select=$user->lock(true)->select();//二:getField()//$select=$user->where('id>1')->getField('id,username');//更新操作:傳回值是受影響行數//1.save()中可以直接傳入想要更改的資料,格式:欄位資訊數組//可以不寫where,但是數組中必須類比的where條件//$data['id']='4';//$data['username']='aaaa';//$data['password']='aaaa';//$select=$user->where('id=4')->save($data);//$select=$user->where('id=4')->data($data);//1.setField()參數:欄位,值//$select=$user->where('id=4')->setField(array('username','password'),array('google','google'));//2.setInc():對數字欄位進行的增加更新操作。參數:欄位、where、增加的整型(預設加一)//$select=$user->setInc('price','id=2',1);//3.setDec()對數字欄位進行的減少更新操作。參數:欄位、where、減少的整型(預設減一)//$select=$user->setDec('price','id=2',1);//add操作:返回插入的id//$data['username']='aaaa';//$data['password']='aaaa';//$select=$user->add($data);//$select=$user->data($data)->add();//delete操作:受影響的行數//$select=$user->delete(6);//$select=$user->where('id>4')->delete();//$select=$user->where('id>1')->limit('1')->order('id desc')->delete();dump($select);//實現更新指定id的資料//$this->display();}public function update(){$user=new Model('User');//返回的數組資訊如果用自動填滿,傳回值和資訊更多if ($vo=$user->create()) {$user->username=md5($user->password);if ($user->save()) {$this->success('添加成功');}else{$this->error($user->getError());}}else {$this->error($user->getError());}}}?>
html
CURD