【小(xiǎo)編推薦】ThinkPHP3.2——模型調試

2014-06-26  &n ★φ♥bsp;|   發布者:梁國(guó)芳&γ→nbsp;  |  σ®'  查看(kàn):3320次

Thinkphp

調試執行(xíng)的(de)SQL語句

在模型操作(zuò)中 ,為(wèi)了(₽✔ le)更好(hǎo)的(de)查明(míng)₹₩≠錯(cuò)誤,經常需要(yào)查看(kàn)下(xià)最近(jìn)使用™&π(yòng)的(de)SQL語句,我們可(kě)以用(yòng)getLastsql方法來(lái)輸出上(shàng)次執®₽行(xíng)的(de)sql語句。例如(r★α•£ú):

  1. $User = M("User"); // 實例化(huà)User對(duì)象
  2. $User->find(1);
  3. echo $User->getLastSql();
  4. // 3.2版本中可(kě)以使用(yòφ±ng)簡化(huà)的(de)方法
  5. echo $User->_sql();

輸出結果是(shì) select * FROM think_user WHERE id = 1

并且每個(gè)模型都(dōu)使用(yòng)獨立的(de)最•<σ後SQL記錄,互不(bù)幹擾,但(dà≤<✘n)是(shì)可(kě)以用(yòng)空(kōng)模型的£δ(de)getLastSql方法獲取全局的(de)最後SQL記錄。

  1. $User = M("User"); // 實例化(huà)User模型
  2. $Info = M("Info"); // 實例化(huà)Info模型
  3. $User->find(1);
  4. $Info->find(2);
  5. echo M()->getLastSql();
  6. echo $User->getLastSql();
  7. echo $Info->getLastSql();

輸出結果是(shì)

  1. select * FROM think_info WHERE id = 2
  2. select * FROM think_user WHERE id = 1
  3. select * FROM think_info WHERE id = 2

getLastSql方法隻能(néng)獲取最後執行(xíng)的♠₽∏(de)sql記錄,如(rú)果需要(yào)了(le)解更多(duō± ​§)的(de)SQL日(rì)志(zhì)∏×‌,可(kě)以通(tōng)過查看(kàn)當前的(de)頁₹≤面Trace或者日(rì)志(zhì)文(wén)件(jiàn)。

注意:Mongo數(shù)據庫驅動由于接口的(de)特殊性,不(bù)存©→在執行(xíng)SQL的(de)概念,因此SQL日(""rì)志(zhì)記錄功能(néng)是(sh"σì)額外(wài)封裝實現(xiàn)的(de),所σ¶•以出于性能(néng)考慮,隻有(yǒu)在開(kāi)₽>啓調試模式的(de)時(shí)候才支持使用(λ yòng)getLastSql方法獲取最後執行(xíng₽£)的(de)SQL記錄。

調試數(shù)據庫錯(cuò)誤信息

在模型操作(zuò)中,還(hái)可(kě)以獲取數(sh±πù)據庫的(de)錯(cuò)誤信息,例如(rúπ ≈γ):

  1. $User = M("User"); // 實例化(huà)User對(duì)象
  2. $result = $User->find(1);
  3. if(false === $result){
  4. echo $User->getDbError();
  5. }

CURD操作(zuò)如(rú)果返回值為(wèi)false,表$₹•示數(shù)據庫操作(zuò)發生(shēng)錯(cuò)誤↔™♦α,這(zhè)個(gè)時(shí)候就®ε(jiù)需要(yào)使用(yòng)模型的(₩ &∞de)getDbError方法來(lái)查≥±看(kàn)數(shù)據庫返回的(de)具體(tǐ©↕™)錯(cuò)誤信息。