在第17行的/public\html/connections/pdo.php中找不到mysql类“mydatabaseexception”

sqserrrh  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(270)

我对php并不陌生,但对异常和oop并不熟悉。
这里的问题是,有时mysql不加载或在web服务器之后加载。所以我得到了一个致命的错误:
php消息:php堆栈跟踪:
php消息:PHP1{main}()/public\u html/jpa。php:0
php消息:PHP2。需要\u once()/public\u html/jpa。php:9
php消息:PHP3。需要\u once()/public\u html/common/japan。php:9
php消息:PHP4。pdo->\u构造mysql:host=localhost;数据库名称=;字符集=utf8','','')/public\u html/connections/pdo。php:10
php消息:php致命错误:在第17行的/public\u 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是否启动并运行。我也不知道该怎么做。
一段代码将不胜感激。三年来一直在处理这个错误。

eit6fx6z

eit6fx6z1#

MyDatabaseException 不是一个预定义的php类,它只是一个示例名称,您可以自己创建,比如 $myString 或者 myFunction() . 但你还没有创建任何这样的类。不只是重新抛出异常,而是在catch块中执行所需的操作:

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;

}

相关问题