我对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是否启动并运行。我也不知道该怎么做。
一段代码将不胜感激。三年来一直在处理这个错误。
1条答案
按热度按时间eit6fx6z1#
MyDatabaseException
不是一个预定义的php类,它只是一个示例名称,您可以自己创建,比如$myString
或者myFunction()
. 但你还没有创建任何这样的类。不只是重新抛出异常,而是在catch块中执行所需的操作: