gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 10:26:32 25 4
gpt4 key购买 nike

我对 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com