2012-07-14 19 views
2

我正在寫我的查詢數據庫中的一個功能,如果MySQL查詢錯誤出來出於某種原因,我想我的函數返回一個值(在這種情況下,-1)表明查詢失敗,而不是在整個腳本之外。PHP MySQL的Error_log和立即返回一個值

通常我只是用這個結構:

$result = mysql_query($sql) or die([some error information]);

但在這種情況下,我不想死,但我確實需要打出來的功能,並具有一定的方式告訴調用功能出現了錯誤,同時仍然能夠手動檢查日誌爲錯誤的來源。有沒有辦法做到這一點?半僞代碼看起來是這樣的:

$result = mysql_query($sql) or { 
    error_log([some error information]); 
    return -1; 
} 

但我試過一對夫婦和變化(如人們所預料的),他們不工作。

有什麼建議嗎?謝謝。

回答

5

試試這個:

if(!($result = mysql_query($sql))) { 
    error_log(...); 
    return -1; 
} 
+0

啊!我從來沒有想過像對待條件評估那樣對待查詢。非常有意義。感謝Kolink,這很好。 – Murdock 2012-07-14 01:29:59

1

在聲明中or是一個PHP的logical operators這就像在使用時,如果將第一個因short circuit evaluation未能執行第二條語句。您將無法return該語句,因爲你正在做的任務,如果你執行兩個語句,你將不能夠適當的值返回$result變量。

你可以做類似

$result = false or (error_log('message') && ($result = -1)); 
if ($result === -1) return $result; 

但是這並不比其他任何你可以做的更短。

使用像什麼@Kolink提供給你想要的東西表達。

+0

感謝您的更深層次的解釋,引來。提供一些有用的理解。 – Murdock 2012-07-14 01:30:21