ThinkPHP內(nèi)置的(de)ORM和(h >"é)ActiveRecord模式實現(xiàn)了(l" ∑πe)方便的(de)數(shù)據存取操作(zuò),而且γ←↕• 新版增加的(de)連貫操作(zuò)功能®♦(néng)更是(shì)讓這(zhè)個(gèΩ↕×)數(shù)據操作(zuò)更加清晰,但(dàn)是÷₽&(shì)ThinkPHP仍然保留了(le)原生(shēng)的(de≤✔)SQL查詢和(hé)執行(xíng)操作(zuò)支持,∏γ×為(wèi)了(le)滿足複雜(zá)查詢的(de)需要(β↔yào)和(hé)一(yī)些(xiē)Ω≤ 特殊 的(de)數(shù)據操作(zuò),S∑γ QL查詢的(de)返回值因為(wèi)是(shì)直接♥₹返回的(de)Db類的(de)查詢結果,沒有(yǒu& ←)做(zuò)任何的(de)處理(lǐ)。
主要(yào)包括下(xià)面兩個(gè)方法:
1、query方法
query方法用(yòng)于執行(xíng)✔®©SQL查詢操作(zuò),如(rú)果數(shù)據非法或者查Ω↔σ詢錯(cuò)誤則返回false,否則返回查詢結果數(shσ'∏φù)據集(同select方法)。
使用(yòng)示例:
$Model = new \Think\Model() // 實例化(huà)一(yī)個(gè)model對(duì)象 沒 ™有(yǒu)對(duì)應任何數(shù)據表$Model->query("select * from think_user where st≥↓™atus=1");
如(rú)果你(nǐ)當前采用(yòng)了(l∏∞→§e)分(fēn)布式數(shù)據庫,并且設置了(le)讀(<•dú)寫分(fēn)離(lí)的(de)話(huà),query方法始終是&™>(shì)在讀(dú)服務器(qì)執行(xí®←ng),因此query方法對(duì)應的(de)都(dōu)是(shì) ±±讀(dú)操作(zuò),而不(bù)管你(nǐβΩ↑)的(de)SQL語句是(shì)什(sh >én)麽。
可(kě)以在query方法中使用(yòng)表₽←名的(de)簡化(huà)寫法,便于動态更改表↔♥®前綴,例如(rú):
$Model = new \Think\Model() // 實例化(huà)一(yī)個(gè)mode∞≥l對(duì)象 沒有(yǒu)對(duì)應任何數(shù)據表×¶$<$Model->query("select * from __PREFIX__user wher¥ ✘✘e status=1");// 3.2.2版本以上(shàng)還(hái)可(kě)以直接使用(yò ₹ng)$Model->query("select * from __USER__ where₹β↓↔ status=1");
和(hé)上(shàng)面的(de)寫法等效,會 ™☆(huì)自(zì)動讀(dú)取當前設置的(de)表前綴。
2、execute方法
execute用(yòng)于更新和(hé)↔Ω寫入數(shù)據的(de)sql操作(zuò),如(rú)果數(<≈shù)據非法或者查詢錯(cuò)誤則返回false ,否則返回影(y©ǐng)響的(de)記錄數(shù)。
使用(yòng)示例:
$Model = new \Think\Model() // 實例化(huà)一(yī)個(gè)mod€<el對(duì)象 沒有(yǒu)對(duì)應任何數(shù↑ )據表$Model->execute("update think_u✔₩ "ser set name='thinkPHP' where sta✘♣>₹tus=1");
如(rú)果你(nǐ)當前采用(yòng)了(le)分¶>π(fēn)布式數(shù)據庫,并且設置了(le™★)讀(dú)寫分(fēn)離(lí)的(de)話(huà),execute方法∑×始終是(shì)在寫服務器(qì)執行(xíng),因此execute方≠λ♥✔法對(duì)應的(de)都(dōu)是(shì)₽↕'寫操作(zuò),而不(bù)管你(nǐ¥↑)的(de)SQL語句是(shì)什(shén)麽。
也(yě)可(kě)以在execute方法中使用(π¥yòng)表名的(de)簡化(huà)寫法,便于'♦動态更改表前綴,例如(rú):
$Model = new \Think\Model() // 實例化(huà)一(yī)個(gè)mod★÷el對(duì)象 沒有(yǒu)對(duì)應任ε∑≤何數(shù)據表$Model->execute("update __PREFIX__user←↕&€ set name='thinkPHP' where<→ status=1");// 3.2.2版本以上(shàng)還(hái)可(kě)以直接使用(y₹π≈☆òng)$Model->execute("update __USER__ set name='thin ¶kPHP' where status=1");
和(hé)上(shàng)面的(de)寫法等效,會(huì)自(zì)動÷✔→讀(dú)取當前設置的(de)表前綴。




