【小(xiǎo)編推薦】ThinkPHP3.2—λ←✔•—SQL查詢

2014-06-26   | &πσ nbsp; 發布者:梁國(guó)芳& φ&αnbsp;  | &☆λ↔>nbsp; 查看(kàn):3320次

Thinkphp

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)示例:

  1. $Model = new \Think\Model() // 實例化(huà)一(yī)個(gè)model對(duì)象 沒  ™有(yǒu)對(duì)應任何數(shù)據表
  2. $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ú):

  1. $Model = new \Think\Model() // 實例化(huà)一(yī)個(gè)mode∞≥‌l對(duì)象 沒有(yǒu)對(duì)應任何數(shù)據表×¶$<
  2. $Model->query("select * from __PREFIX__user wher¥ ✘✘e status=1");
  3. // 3.2.2版本以上(shàng)還(hái)可(kě)以直接使用(yò ₹ng)
  4. $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)示例:

  1. $Model = new \Think\Model() // 實例化(huà)一(yī)個(gè)mod€<el對(duì)象 沒有(yǒu)對(duì)應任何數(shù↑ )據表
  2. $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ú):

  1. $Model = new \Think\Model() // 實例化(huà)一(yī)個(gè)mod★÷el對(duì)象 沒有(yǒu)對(duì)應任ε∑≤何數(shù)據表
  2. $Model->execute("update __PREFIX__user←↕&€ set name='thinkPHP' where<→ status=1");
  3. // 3.2.2版本以上(shàng)還(hái)可(kě)以直接使用(y₹π≈☆òng)
  4. $Model->execute("update __USER__ set name='thin ¶kPHP' where status=1");

和(hé)上(shàng)面的(de)寫法等效,會(huì)自(zì)動‍÷✔→讀(dú)取當前設置的(de)表前綴。