php - 在第 17 行/public_html/Connections/pdo.php 中找不到类 'MyDatabaseException'

标签 php mysql pdo

我对 php 并不陌生,但我不熟悉异常和 OOP。

这里的问题是有时mysql不加载或者在web服务器之后加载。所以我遇到了这个 fatal error :

  1. PHP 消息:PHP 堆栈跟踪:
  2. PHP 消息:PHP 1. {main}()/public_html/jpa.php:0
  3. PHP 消息:PHP 2. require_once()/public_html/jpa.php:9
  4. PHP 消息:PHP 3. require_once()/public_html/common/japan.php:9
  5. PHP 消息:PHP 4. PDO->__construct('mysql:host=localhost;dbname=xxx;charset=utf8', 'xxx', 'xxx')/public_html/Connections/pdo.php:10 <
  6. PHP 消息:PHP fatal error :在第 17 行/public_html/Connections/pdo.php 中未找到“MyDatabaseException”类

这是我的代码,直接从 PHP 页面复制。

<?php

try  
{   
  $db = new PDO("mysql:host={$hostname_data_connect};dbname={$database_data_connect};charset=utf8", "{$username_data_connect}", "{$password_data_connect}");   
  $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
}

catch( PDOException $Exception )  
{   
  // Note The Typecast To An Integer!   
  throw new MyDatabaseException( $Exception->getMessage( ) , (int)$Exception->getCode( ) ); 
}

我想要实现的是返回 503 维护消息或将用户重定向到自定义 503 维护消息页面,而不是抛出致命异常。 mysql完成加载的时间。

我不知道该怎么做。请帮忙。

或者在执行上面的代码之前执行 php 检查来测试 mysqld 是否已启动并运行。我再次不知道该怎么做。

一段代码将不胜感激。处理这个错误已经有 3 年了。

最佳答案

MyDatabaseException 不是预定义的 PHP 类,它只是您可能自己创建的示例名称,例如 $myStringmyFunction() 。但你还没有创建任何这样的类。不要只是重新抛出异常,而是在 catch block 中执行所需的操作:

try {
    // some db stuff
} catch PDOException($e) {

    // maybe dynamically generate a 503 page
    header('HTTP/1.1 503 Service Unavailable');
    // output page content here
    exit();

    // or redirect to an existing one
    header('Location: http://your.domain/your/503/page');
    exit;

}

关于php - 在第 17 行/public_html/Connections/pdo.php 中找不到类 'MyDatabaseException',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48194101/

相关文章:

php - 如何检测和删除不必要的 xmlns :<something> attributes in PHP DOM?

php - 将 MySQL 数据库转移到新服务器

php - 使用 PHP 使用 mysql pdo 中的数据生成 XML

mysql - sqlfiddle 中的 Bug 或者我不明白 INSERT ... ON DUPLICATE KEY UPDATE

java - Android 到 Web 服务器问题

php - 如何通过网络设备使用PDO连接MySQL

javascript - 检测ajax请求的请求url

javascript - AJAX 后 - {"readyState":0 ,"responseText" :"" ,"status":0 ,"statusText" :"error"}

php - 使用 PDO MYSQL 返回单个值

php - mysql PDO ON DELETE CASCADE - 不工作