类实例抛出内部服务器错误 500(PHP、MYSQLi)


Class Instance throws Internal Server Error 500 (PHP, MYSQLi)

我遇到了一个奇怪的情况。

当类实例传递给方法并且尚未设置类实例时,服务器会抛出 500 错误,而不是捕获错误。

这在 99% 的时间内都会在测试期间发生,但我想确保用户永远不会看到这 1%

顺便说一句:我已经检查了我的.htaccessapache2文件 <= 它们是正确的

我需要在我的php.ini文件中更改什么或类似的东西以避免每次发生这种情况时出现500错误?

下面是一些示例代码:

<?php
function querysomething ($connection_to_mysql, $query) {
  try {
    $query = $connection_to_mysql->prepare("SELECT * FROM table WHERE name=?");
    $query->bind_param("s", $name);
    $execute = $query->execute();
    //etc...
    if (!$execute) {
      throw new Exception ("some error");
    }
  } catch (Exception $e) {
    //some error handling
  }
}
?>

如果未实例化$connection_to_mysql对象,服务器将引发500错误

在查询之前,我是否需要每次检查$connection_to_mysql是否确实存在?

使用 set_error_handler/set_exception_handler 显示特定于 php 的致命错误页面。

在对捕获Fatal Errors进行了一些额外的阅读后,我可以遇到以下内容: 如何捕获PHP致命错误

而不是使用 set_error_handler & set_exception_handler 来捕获所有错误并处理后记,请使用 register_shutdown_functions

这将允许您重定向到页面(例如:500.php或其他任何页面),记录错误,并在需要时发送电子邮件。