簡體   English   中英

PHP mysql error_log並立即返回值

[英]PHP mysql error_log and immediately return a value

我正在編寫一個查詢數據庫的函數,如果mysql查詢由於某種原因而出錯,我希望我的函數返回一個表示查詢失敗的值(在這種情況下為-1),而不是全部消失腳本。

通常我只使用這種結構:

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

但是在這種情況下,我不想死,但是我確實需要突破該功能,並有某種方式告訴調用函數出了點問題,同時仍然能夠手動檢查日志以獲取源代碼。錯誤。 有沒有辦法做到這一點? 半偽代碼如下所示:

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

但是我已經嘗試了幾種變體,並且(正如人們可能期望的那樣)它們不起作用。

有什么建議么? 謝謝。

嘗試這個:

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

該語句中的or是PHP的邏輯運算符之一 ,當這樣使用時,如果第一個語句由於短路評估而失敗,它將執行第二個語句。 由於正在執行賦值操作,因此您將無法return該語句;如果執行兩個語句,您將無法向$result變量返回正確的值。

你可以做類似的事情

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

但這並不比您能做的任何其他事情短。

使用類似@Kolink提供的表達式來執行所需的操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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