-
多表查詢之table方法 //不推薦使用table,一般查看視圖不用表格 1 語法 多表聯(lián)合查詢 table(array('前綴_表名1'=>'別名1','前綴_表名2'=>'別名2',……)) 表名需要加前綴 2 例子 $data=M()->table(array('nk_user'=>'user','mk_userinfo'=>'info')) ->where('user.id=info.user_id')->select(); //因?yàn)?table() 中已經(jīng)將所有的表都做了別名處理,所有此處的 M() 函數(shù)是不需要穿參數(shù)的查看全部
-
連貫操作之group分組和having方法 1 group分組顯示結(jié)果,having(不可單獨(dú)使用)而是配合group使用,作為統(tǒng)計(jì)結(jié)果的條件限制輸出 M("User")->field("score count(*) as total")->having("score >= 20")->group("score")-select();查看全部
-
連貫操作之limit和page方法 1 limit(start,length) 其中start可缺省,默認(rèn)從第一條開始 例:limit(2,5)//從第2條開始數(shù),取5條數(shù)據(jù) 2 page(頁碼,每頁數(shù)據(jù)條數(shù)=默認(rèn)20) 例:page(2,5) //查詢第2個(gè)頁碼的數(shù)據(jù),每頁5條數(shù)據(jù)查看全部
-
1.語法 field($string,false)【默認(rèn)狀態(tài)false】 false 時(shí),查詢 $string 中規(guī)定的字段 ture 時(shí),過濾 $string 中規(guī)定的字段(即取 $string 規(guī)定字段 以外的其他字段) 查詢多個(gè)字段時(shí),$string 中的各字段名 用逗號(hào)隔開 2.TP中提供了連續(xù)操作方式,如下: //所有的條件方法都是要在 select()方法前使用,條件方法對(duì)查詢才會(huì)起作用. // 只查詢user_name,并按id進(jìn)行降序排序; $data=M('user')->field('user_name',false)->order('id',desc)->select();查看全部
-
//order排序(多個(gè)條件用逗號(hào)隔開) order(‘字段1 排列方式,字段2 排列方式') $data=M('user')->order('score desc,id asc')->select(); //desc降序排列,asc升序排列查看全部
-
1.按條件刪除 $where['id']=3; //條件刪除 M('User')->where($where)->delete(); 2.主鍵值刪除 M('User')->delete(3); //delete(主鍵值);只可以傳入主鍵值,刪除主鍵值對(duì)應(yīng)的那條數(shù)據(jù)查看全部
-
//更新數(shù)據(jù) $updata['score']=60; $where['id']=1; M('User')->where($where)->save($updata)查看全部
-
1直接使用字符串進(jìn)行查詢 $data=M('User')->where('id=11')->select(); 2使用數(shù)組的方式進(jìn)行查詢 $where['id']=1; $where['user_name']='xiaohong'; $where['_logic']='or';//默認(rèn)AND $data=M('User')->where($where)->select(); dump($data); 3表達(dá)式查詢 $where['字段名']=array(表達(dá)式,查詢條件); $where['id']=array('gt',13); $where['id']=array('between','12,14'); $where['id']=array('in','12,14'); $where['user_name']=array('like','%hong'); $where['user_name']=array('like',array('%ming','%hong')); $data=M('User')->where($where)->select(); 4區(qū)間查詢 $where['id']=array(array('gt',12),array('lt',15)); $where['id']=array(array('gt',15),array('lt',12),'or');//默認(rèn)AND $data=M('User')->where($where)->select(); 5混合用法 盡量不要用混合和字符串查詢 $where['id']=array('gt',10);$where['_string']='score>10'; $data=M('User')->where($where)->select(); 6統(tǒng)計(jì)用法 $data=M('User')->count();//統(tǒng)計(jì)數(shù)量 可選 $data=M('User')->max('id');//求最大值 須傳入字段名 $data=M('User')->min('id');//求最小值 須傳入字段名 $data=M('User')->avg('score');//求平均值 須傳入字段名 $data=M('User')->sum('score');//求和 必傳入字段名查看全部
-
M('表名')->add(一維數(shù)組) M('User')->add(一維數(shù)組);//添加一條數(shù)據(jù),成功的話返回自增ID值 M('User')->addAll(多維數(shù)組);//添加多條數(shù)據(jù),成功的話返回插入數(shù)據(jù)第一條自增ID值,只適用于MySql,且實(shí)際運(yùn)用中較少 echo M()->getLastSql();//查看最后一條執(zhí)行語句查看全部
-
1.實(shí)例化框架基礎(chǔ)模型(在 ThinkPHP/Library/Think/Model.class.php 中) $user=new Model('admin’); //參數(shù)表:表名、表前綴、數(shù)據(jù)庫連接信息 ;省略的參數(shù)會(huì)直接調(diào)用配置文件中配置的相關(guān)數(shù)據(jù) $user=M("pro"); //M()方法會(huì)直接跳過應(yīng)用中的模型(不論應(yīng)用的模塊的 Model文件夾 中是否有同名模型類文件[proModel.class.php] ),而去實(shí)例化框架基礎(chǔ)模型 $data==$user->select(); //數(shù)據(jù)庫查詢 dump($data); 2.實(shí)例化用戶自定義模型(在 Application/模塊(Home)/Model 中) $user=new adminModel(); //參數(shù)表:表名、表前綴、數(shù)據(jù)庫連接信息 ;省略的參數(shù)會(huì)直接調(diào)用配置文件中配置的相關(guān)數(shù)據(jù) $user=D("admin");//先找用戶自定義模型,找不到會(huì)自動(dòng)切換成M()方法去查找框架基礎(chǔ)模型 echo $user->getinfo(); //調(diào)用自定義模型類中的方法 3.實(shí)例化公共模型(建議在 Application/模塊(Home)/Model 中建立,且 公共模型 繼承 框架基礎(chǔ)模型 ,然后[有需要的]其他用戶自定義模型 再繼承 此公共模型 , 這樣 此公共模型中定義的方法 就可以被 繼承他的子模板 共用) $user=new CommonModel(); //公共模型 echo $user->strmake("aaa"); //公共模型->方法 $user=D("User"); //繼承公共模型的子模型 /echo $user->strmake("abc"); //子模型->公共模型的方法 4.實(shí)例化空模型(方便使用原生的SQL語句) $model=M(); //實(shí)例化一個(gè)空框架基礎(chǔ)模型 $sql="select * from imooc_admin"; $data=$model->query($sql); //query()方法最好只用于讀取數(shù)據(jù) $model->execute($sql); //execute()方法最好只用于寫入數(shù)據(jù) update,insert,delete等 [execute()方法返回值為數(shù)據(jù)表被影響行數(shù),所以不能用來做查詢]查看全部
-
//TP框架內(nèi)置了一個(gè)抽象的數(shù)據(jù)庫的訪問層,這個(gè)訪問層封裝了特類的數(shù)據(jù)庫操作 //------mysql式數(shù)據(jù)庫連接方法----- 'DB_TYPE'=>'muysql',//數(shù)據(jù)庫類型 'DB_HOST'=>'localhost,localhost1,localhost2',//數(shù)據(jù)庫服務(wù)器地址 'DB_NAME'=>'mooc',//數(shù)據(jù)庫名 'DB_USER'=>'root',//數(shù)據(jù)庫用戶 'DB_PWD'=>'',//數(shù)據(jù)庫用戶密碼 'DB_PORT'=>'3306',//數(shù)據(jù)庫端口(默認(rèn)3306),可以不配置 'DB_PREFIX'=>'mc_',//數(shù)據(jù)庫表前綴 //數(shù)據(jù)庫配置好后,并非立即連接,TP數(shù)據(jù)庫連接是一種惰性連接,只有在實(shí)例化時(shí)才連接。 //開啟主從讀寫分離,讀操作使用從服務(wù)器,寫操作使用主服務(wù)器,這樣就能給數(shù)據(jù)庫進(jìn)行負(fù)載均衡 'DB_RW_SEPARATE'=>true, //多個(gè)主數(shù)據(jù)庫服務(wù)器,localhost,localhost1為主服務(wù)器,localhost2為從服務(wù)器查看全部
-
TP調(diào)試方法: 1.在入口文件中開啟調(diào)試模式 define('APP_DEBUG',true); //開啟調(diào)試模式 系統(tǒng)會(huì)自動(dòng)加載框架下ThinkPHP/Conf/debug.php 2.在應(yīng)用目錄下的位置文件夾( Application/Common/Conf )中建立debug.php配置文件;在調(diào)試模式下其檢測(cè)到應(yīng)用目錄中的配置目錄( Application/Common/Conf )中有 debug.php 文件存在 其優(yōu)先級(jí)高于 config.php (即 debug.php 中的配置項(xiàng)將覆蓋 同目錄下的 config.php 中的同名配置項(xiàng)) 在 debug.php 中配置'SHOW_PAGE_TRACE'=>true,顯示頁面trace信息 當(dāng)關(guān)閉調(diào)試模式后 define('APP_DEBUG’,false) TP將停止加載框架下的(ThinkPHP/Conf/) debug.php 文件 與 應(yīng)用目錄下( Application/Common/Conf )的 debug.php 文件 3. 調(diào)用trace()方法(在 1,2 配置文成條件下才能使用 trace()方法 ) trace('變量','標(biāo)簽','級(jí)別','是否記錄日志') 變量: 要顯示的變量 標(biāo)簽: 顯示變量值時(shí)的提示標(biāo)簽 級(jí)別: 顯示位置(在調(diào)試界面的那個(gè)選項(xiàng)卡中顯示;默認(rèn)在調(diào)試選項(xiàng)卡中顯示) 如: $info = '測(cè)試信息'; trace($info,'提示’,’SQL’); 則在SQL選項(xiàng)卡中顯示 “提示:測(cè)試信息” 老師的代碼是: trace(‘name’,C(‘name’)); //C(‘name’) 的值為: Donsen@debug 所以在調(diào)試選項(xiàng)卡中顯示 “Donsen@debug:name” 4. 調(diào)用G()方法,獲取代碼段執(zhí)行時(shí)間(毫秒) (不需要開啟調(diào)試狀態(tài)也可以使用) G('run'); for($i=0;$i<100000;$i++){ $count += $i; } echo G('run','end'); //統(tǒng)計(jì)從 G('run') 標(biāo)記的位置到 G('run','end') 標(biāo)記的位置所用的運(yùn)行時(shí)間和內(nèi)存占用情況 5.格式化輸出變量內(nèi)容: dump(變量); //是 TP 對(duì) php 內(nèi)置函數(shù) var_dump() 的改進(jìn).查看全部
-
1 不推薦使用if判斷標(biāo)簽(原因是condition屬性使用php語法),盡量用其他標(biāo)簽替代。 2 實(shí)在不行就用php原生語法, <php>php語法</php> (原因異步方式使用的都是php原生語法) <foreach name='person' item='data'> <br /><!-- 比較標(biāo)簽 --> <egt name='data.age' value='18'>{$data.name}已成年<else />{$data.name}未成年</egt> </foreach> <br /> <foreach name='person' item='row' > <!-- {$person[1]['age'] >= 18?"yes":"no"} 二維數(shù)組--> {$row['age'] >= 18?"成年":"未成年"} <br/> <!-- 三目運(yùn)算符 --> </foreach> <php>echo $person[1]['name']</php> <!-- 模板中使用PHP -->查看全部
-
三元運(yùn)算符,php語法一樣,如下: {$num>11?'大于11':'不大于11'}查看全部
-
TP模板引擎之區(qū)間標(biāo)簽(in notin between notbetween range:type的標(biāo)簽?zāi)苁莍n和notin,between和notbetween) <in name='num' value='1,2,3'>在</in>(判斷是否在1,2,3之間) <notin name='num' value='1,2,3'>不在</notin> <in name='num' value='1,2,3'>在<else></else>不在</in> <between name='num' value='1,10'>在</between>(判斷是否在1到10之間) <notbetween name='num' value='1,10'>在</notbetween> <between name='num' value='1,10'>在<else></else>不在</between> <range name='num' value='1,2,3' type='in'>在<else></else>不在</range>(type的值在3.1版本中只能為in/notin,而在3.2版本中可以用in/notin/between/notbetween查看全部
舉報(bào)
0/150
提交
取消