簡體   English   中英

PHP:嘗試捕獲異常

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM