數據庫表結構
#表結構 CREATE TABLE `qrcode_file` ( `id` int(20) NOT NULL AUTO_INCREMENT, `active` int(1) DEFAULT '0' COMMENT '是否有效', `owner_id` int(20) DEFAULT '0' COMMENT '所有人ID', `owner_role_id` int(20) DEFAULT '0' COMMENT '所有人角色ID', `qrcode_url` varchar(500) DEFAULT '' COMMENT '二維碼解析后', `scene_id` int(10) DEFAULT '0' COMMENT '場景值ID', `scene_str` varchar(200) DEFAULT '' COMMENT '場景值ID', `file_id` int(20) DEFAULT '0' COMMENT '保存文件id', `create_by` varchar(25) DEFAULT '', `update_by` varchar(25) DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='二維碼文件表';
控制器代碼
//=================================1.新增數據================================// //$newQrcodeFile = new QrcodeFile(); //var_dump($newQrcodeFile->get_data());//實例化的時候不給參數 返回data //$newQrcodeFile->active=0; //$newQrcodeFile->owner_id=123321; //$newQrcodeFile->owner_role_id=2; //$newQrcodeFile->scene_id=123456; //$newQrcodeFile->scene_str="test"; //$newQrcodeFile->create_by="lizhaoyao"; //$newQrcodeFile->update_by="lizhaoyao"; //var_dump($newQrcodeFile->get_data());//成員變量操作之后再返回data //var_dump($newQrcodeFile->save());//調用save方法 保存數據 只返回成功與否 不返回自增id //var_dump($newQrcodeFile->getLastInsID());//調用getLastInsID 可以返回最后自增的id //echo $newQrcodeFile->getLastSql(); //exit; //=================================2.刪除數據================================// //$newQrcodeFile = new QrcodeFile(); //$pk_id=9; //2.1 主鍵刪除 //$info=QrcodeFile::get($pk_id);//找到主鍵id為9的數據 //這一步設置完了后會把 模型中的 //protected 'isUpdate' => boolean true //protected 'updateWhere' =>array("id"=>9) //if($info){$info->delete();} //2.2 destroy刪除 可以批量 //var_dump($newQrcodeFile::destroy($pk_id));//直接調用destroy方法刪除 // 支持批量刪除多個數據 //var_dump($newQrcodeFile::destroy('11,12,13'));//刪除id為 11 12 13的數據 批量刪除 返回3 成功刪除的條數 //var_dump($newQrcodeFile::destroy(array(21,22,23)));//刪除id為 21 22 23的數據 批量刪除 返回3 成功刪除的條數 //2.3 主鍵條件刪除 //$delete_result=$newQrcodeFile->where('id','>',25)->delete();//把 id>25的數據刪掉 //var_dump($delete_result);//返回2 成功刪除的條數 //2.4 多條件刪除 //$delete_result=$newQrcodeFile->where(array("scene_id"=>"123456","owner_id"=>123))->delete(); //var_dump($delete_result);//返回2 成功刪除的條數 //exit; //=================================3.修改數據================================// //$newQrcodeFile = new QrcodeFile(); //3.1 先找到數據 再更新數據 用對象成員變量的形式 挨個操作 //$user = $newQrcodeFile::get(20);//找到id為20的數據 //$user->owner_id = '789';//賦值 owner_id //$user->active = '1';//賦值 active //var_dump($user->save());//去更新 更新的結果是0或者1 //3.2 直接通過數組形式賦值更新 //$save_result=$newQrcodeFile->save(array("owner_id"=>"951","active"=>3),array("id"=>24));//通過save第二個參數傳條件進行更新 //var_dump($save_result);//更新的結果是0或者1 //3.3 通過 update方法調用where設定條件更新 //$update_result=$newQrcodeFile->where(array("id"=>10))->update(array('scene_str' => 'tp5')); //var_dump($update_result);//更新的結果是0或者1 //exit; //=================================4.查詢數據================================// //$newQrcodeFile=new QrcodeFile(); //4.1 使用get靜態函數主鍵獲取 //$info = $newQrcodeFile::get(20);//通過主鍵查找 然后通過成員變量屬性方式訪問 //var_dump($info->id); //var_dump($info->active); //var_dump($info->owner_id); //var_dump($info->qrcode_url); //var_dump($info->scene_id); //4.2 使用where條件配合find方法 //$info=$newQrcodeFile->where('owner_id', '789')->find();//獲取到的也是對象 也需要通過成員變量屬性方式訪問獲取 //var_dump($info->id); //var_dump($info->active); //var_dump($info->owner_id); //var_dump($info->qrcode_url); //var_dump($info->scene_id); //4.3 通過主鍵獲取多個數據 //$all_list=$newQrcodeFile::all("20,24,25");//獲取到的是多個對象 可以遍歷 然后獲取成員變量得到字段值 //foreach($all_list as $info) //{ // var_dump($info->id); // var_dump($info->active); // var_dump($info->owner_id); // var_dump($info->qrcode_url); // var_dump($info->scene_id); //} //4.4通過where條件select得到多個 //$all_list=$newQrcodeFile->where("owner_role_id","2")->order("id","desc")->limit(2)->select(); //foreach($all_list as $info) //{ // var_dump($info->id); // var_dump($info->active); // var_dump($info->owner_id); // var_dump($info->qrcode_url); // var_dump($info->scene_id); //} //4.5獲取某個列的值 //$column_value=$newQrcodeFile->where("id",20)->value("scene_str");//獲取到的直接是一個字符串或者整型 //也可以采用 column方法 //$column_value=$newQrcodeFile->where("owner_role_id","3")->column("scene_str","id");//獲取到的直接是以id為鍵的數組 //var_dump($column_value); //4.6 問題來了 很多時候我們用到的查詢結果都是對象 而PHP開發者都喜歡用數組 該怎么辦呢? //可以使用 toArray() 方法來把對象轉數組 例如 //$info = $newQrcodeFile::get(20)->toArray(); //$info=$newQrcodeFile->where('owner_id', '789')->find()->toArray();//如果表定義的時間格式的字段不是時間戳就會報錯提示轉換時間失敗 //$all_list=$newQrcodeFile::all("20,24,25");//列表獲取的數據需要遍歷然后再 toArray 轉數組 //foreach($all_list as $info) //{ // $info=$info->toArray(); // var_dump($info); //} //用all方法查出來的是不可以用 toArray 方法轉換數組的 //$all_list=$newQrcodeFile->where("owner_role_id","2")->order("id","desc")->limit(2)->select(); //foreach($all_list as $info) //{ // $info=$info->toArray(); // var_dump($info); //}
模型代碼 QrcodeFile.php
<?php namespace app\index\model; use think\Model; class QrcodeFile extends Model{ //自定義初始化 function get_data() { return $this->data; } }