調試執行(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★α•£ú):
$User = M("User"); // 實例化(huà)User對(duì)象$User->find(1);echo $User->getLastSql();// 3.2版本中可(kě)以使用(yòφ±ng)簡化(huà)的(de)方法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記錄。
$User = M("User"); // 實例化(huà)User模型$Info = M("Info"); // 實例化(huà)Info模型$User->find(1);$Info->find(2);echo M()->getLastSql();echo $User->getLastSql();echo $Info->getLastSql();
輸出結果是(shì)
select * FROM think_info WHERE id = 2select * FROM think_user WHERE id = 1select * 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úπ ≈γ):
$User = M("User"); // 實例化(huà)User對(duì)象$result = $User->find(1);if(false === $result){echo $User->getDbError();}
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ò)誤信息。




