此代码多年来一直正常工作。服务器最近从 7.4 更新到 PHP 8.1,现在这段代码给我一个 500 错误。 这是我在日志中遇到的错误。
[Fri Mar 24 11:22:11.124819 2023] [fcgid:warn] [pid 360449:tid 120683333338128] [client 77.254.54.33:51296] mod_fcgid: stderr: PHP 致命错误:声明 DB::query($statement)必须兼容 PDO::query(string $query, ?int $fetchMode = null, mixed ...$fetchModeArgs): PDOStatement|false in /home/website/website.com/app/mysql.php on line 29,推荐人:https://website.com/
<?PHP
class DB extends PDO {
public $db_host = ‘host’;
public $db_user = ‘username’;
public $db_pass = ‘password’;
public $db_name = ‘database’;
public $db;
public $db_statement;
public $db_query;
public function __construct(){
$opt = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
);
$this->db = new PDO('mysql:host='.$this->db_host.';port=3306;dbname='.$this->db_name, $this->db_user, $this->db_pass, $opt);
$this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
}
?>