2014-03-25 27 views
0

IM使用Yii開發的Web應用程序Yii中如何檢查查詢執行失敗

我要檢查,如果查詢成功與否

$data = Yii::app()->db->createCommand($SQL); 
$result = $data->queryAll(); 

if(count($result) == 0) 
{ 
    throw new SoapFault('Sender', 'Unable to get display information.'); 
} 

執行如果要是選擇查詢返回任何result-代碼執行組。但我想檢查查詢是否成功執行。基於此我想拋出異常。那麼如果查詢成功執行並且沒有返回任何結果集,則返回一些其他異常。

該怎麼辦?有什麼建議麼 ?

+0

的Yii會自行如果查詢由於語法錯誤或其他問題未能拋出異常。 – DCoder

+0

爲服務正常執行我需要明確地拋出錯誤... –

回答

4
try { 
    $result = $data->queryAll(); 
} catch (Exception $ex) { 
    echo 'Query failed', $ex->getMessage(); 
} 
+0

我做了一個DB參數與一個參數和錯誤地添加引號:'UPDATE ... WHERE哈希=':哈希',命令沒有工作,但didn也不會拋出異常。在這種情況下應該做什麼? – Petruza

+0

如果查詢語法錯誤或未能在數據庫上執行,則會引發異常。你的命令是什麼意思不起作用?如果您有日誌記錄setup-ed,則可以調試yii(運行時目錄中的日誌文件)生成的SQL。 –

+0

我的意思是更新不會發生。 查詢_per-se_沒有錯誤,但由於Yii在替換字符串參數時添加了自己的引號,我猜我在查詢中添加的引號與該引號衝突,但查詢不會拋出SQL錯誤,因爲查詢永遠不會實際上跑了。 – Petruza

0
try 
{ 
    $result = Yii::app()->db->createCommand($sqlQuery)->execute(); 
    echo 'success'; 
} 
catch (Exception $e) 
{ 
    echo 'fail'; 
}