2013-05-22 14 views
1

我已成立MYSQLI_REPORT_STRICT不乱扔mysqli_sql_exception,但MYSQLI_REPORT_ALL确实

mysqli_report(MYSQLI_REPORT_STRICT) 

try{ 
    //query sth ,error will happend 
}catch(Exception $e){ print($e->__toString());  } 

但没有调试信息。但是如果我设置mysqli_report(MYSQLI_REPORT_ALL),我可以得到调试信息。为什么?

+0

您期望什么特定的调试信息? –

+0

mysqli_sql_exception是我想要的。当我使用MYSQLI_REPORT_ALL时,我可以捕获异常,但是当我使用MYSQLI_REPORT_STRICT时,我可以'发现异常 – user2407743

回答

0

尝试使用

$driver = new mysqli_driver(); 
$driver->report_mode = MYSQLI_REPORT_STRICT; 
+0

感谢您的回答,我曾尝试过这种方式。它与mysqli_report(MYSQLI_REPORT_STRICT)相同 – user2407743

+0

@ user2407743是的,它是相同但不同的方式! – Yogus

+0

@ user2407743你gettig exceptios使用'MYSQLI_REPORT_ALL'.can您发布日志这里 – Yogus

1

您将需要启用错误报告(MYSQLI_REPORT_ERROR),如果它是不是已经(取决于PHP的版本,这是任何每个请求或每个进程)。本身,MYSQLI_REPORT_STRICT不启用错误报告,适当的按位标志可能需要一起应用:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT)