[英]PHP:Try and catch exception
這是我在PHP中的嘗試
try{
print (string)((int)$screenname+ 1);
$query2 = 'SELECT * FROM callerdetail WHERE screenname="'.(string)((int)$screenname+ 1).'" AND status="0" AND agent = "'.$agent.'" LIMIT 1;';
$result = mysql_query($query2) or die (mysql_error());
}
catch(Exception $e){
$query3 = 'SELECT * FROM callerdetail WHERE status="0" AND agent = "'.$agent.'" LIMIT 1';
$result = mysql_query($query3) or die (mysql_error());
}
我試圖基於屏幕名稱獲取數據,如果它不可用,那么我想執行catch塊sql語句。
不幸的是,它對我不起作用。 我的數據庫中有一個屏幕名稱= 2的數據,但不是獲取該數據,而是獲取代理的新數據
任何想法 ?
從文檔中 :
對於SELECT,SHOW,DESCRIBE,EXPLAIN和其他返回結果集的語句,mysql_query()成功時返回資源,錯誤時返回FALSE。
因此,永遠不會調用catch塊,因為mysql_query不會引發異常。
使用if
構造,或自己引發 異常 。
為什么會拋出“異常”? 什么都不會導致“例外”。
if語句會更好嗎?
$query2 = 'SELECT * FROM callerdetail WHERE screenname="'.(string)((int)$screenname+ 1).'" AND status="0" AND agent = "'.$agent.'" LIMIT 1;';
$result = mysql_query($query2) or die (mysql_error());
if(mysql_num_rows($result) > 0 ){ // Got a result
// Do something
) else {
// Execute other query
$query3 = 'SELECT * FROM callerdetail WHERE status="0" AND agent = "'.$agent.'" LIMIT 1';
$result = mysql_query($query3) or die (mysql_error());
}
你有;
在try塊中查詢
$query2 = 'SELECT * FROM callerdetail WHERE screenname="'.(string)((int)$screenname+ 1).'" AND status="0" AND agent = "'.$agent.'" LIMIT 0,1';
並正確使用limit
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.