2010-08-24 54 views
1

我在我的日誌中收到很多警告,例如: 2010-08-24 09:34:01警告:警告(2):mssql_num_rows():提供的參數不是有效的MS (C:\ xampp \ htdocs \ cake \ libs \ model \ datasources \ dbo \ dbo_mssql.php,第468行)中的SQL結果資源警告:警告(2):mssql_free_result ):提供的參數不是在[C:\ xampp \ htdocs \ cake \ libs \ model \ datasources \ dbo \ dbo_mssql.php,第180行中的有效MS SQL結果資源] 2010-08-24 09:34:01警告:警告(2):mssql_free_result():提供的參數不是[C:\ xampp \ htdocs \ cake \ libs \ model \ datasources \ dbo \ dbo_mssql.php,第180行中的有效MS SQL結果資源]在日誌中有很多cakephp警告

這些警告剛剛覆蓋我的日誌文件並使它們幾乎無用。 我擡起頭,他們用@符號來抑制這些錯誤,例如: @mssql_free_result($ this-> results);

仍然在我的日誌中顯示有無論如何真正壓制他們而不改變蛋糕代碼?

UPDATE:

好,我看着這一點更 當我在調試模式下我不是這只是發生

,這是錯誤becous處理函數弗朗調試器有 是這樣的:

if (error_reporting() == 0 || $code === 2048 || $code === 8192) { 
    return; 

} 

,並在正常生產的錯誤處理:

if ($code === 2048 || $code === 8192) { 
    return; 

} 

所以在生產它不檢查是否使用error_reporting()被抑制

+1

聽起來像你有消息,你應該*不*忽略。 – 2010-08-24 15:41:26

+0

如果這顯然是一個可重現的問題,您應該在http://cakephp.lighthouseapp.com/上打開它的票證。 – deceze 2010-08-25 01:45:49

回答

0

錯誤一樣,通常都是窮人數據庫錯誤處理的結果。假設一個查詢會成功,並且盲目地使用來自...的query()函數的返回值將導致類似的警告。 mssql_query()僅當有結果時才返回語句句柄。如果查詢成功但是沒有結果,則返回TRUE,並且出錯時爲FALSE

將true/false傳遞給後面的函數(如mssql_num_rows())將會吐出「not a valid ...資源」的錯誤/警告,因爲......它們不是句柄。

換句話說,錯誤並不是真的在警告中指出的那一行,它在腳本的較早部分,無論執行查詢的位置在哪裏。