代码之家  ›  专栏  ›  技术社区  ›  shamaseen

禁用MySQL错误

  •  0
  • shamaseen  · 技术社区  · 7 年前

    有没有任何方法可以防止MySQL错误(如果发生)出现在客户机上,并将其记录到某个地方?

    注1: 我不使用任何框架,只使用带有pdo extinsion和mysql的本机PHP。

    注2: 此代码将停止PHP错误,而不是MySQL。

    ini_set('display_errors', 0);
    ini_set("display_startup_errors", 0);
    error_reporting(0);
    

    例子:

    禁用错误,例如

    SQLSTATE[HY000] [1045] Access denied for user ..
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   AbraCadaver    7 年前

    对于非PHP错误,应用程序(程序员)负责获取和显示/记录错误。因此,对于您的特定示例,不要显示它,记录它:

    //instead of displaying
    if (!$link) {
        die(mysqli_connect_error());
    }
    
    //log it
    if (!$link) {
        error_log(mysqli_connect_error());
    }
    

    你也可以和我们一起 trigger_error 这将尊重您的错误报告设置:

    if (!$link) {
        trigger_error(mysqli_connect_error(), E_USER_ERROR);
    }