Pelanggan kami mempunyai tapak web drupal, tetapi hos memaksa semua pelanggan beralih daripada PHP 7.4 kepada PHP versi 8, mengakibatkan ralat maut PDO yang menghalang tapak web daripada dimuatkan.
Ralat yang diterima:
Ralat maut: Kenyataan DrupalCoreDatabaseStatement::fetchAll(int $mode = PDO::FETCH_DEFAULT, $column_index = null, $constructor_arguments = null) mestilah serasi dengan PDOStatement::fetchAll(int $mode = PDO::FETCH_DEFAULT, bercampur...$args) /usr/www/users/kdpsipxqzt/core/lib/Drupal/Core/Database/Statement.php Di baris 168
Fungsi yang menyebabkan masalah:
ERROR (L 168) -> public function fetchAll($mode = null, $column_index = NULL, $constructor_arguments = NULL) { // Call PDOStatement::fetchAll to fetch all rows. // PDOStatement is picky about the number of arguments in some cases so we // need to be pass the exact number of arguments we where given. switch (func_num_args()) { case 0: return parent::fetchAll(); case 1: return parent::fetchAll($mode); case 2: return parent::fetchAll($mode, $column_index); case 3: default: return parent::fetchAll($mode, $column_index, $constructor_arguments); } }
Ada sesiapa ada idea untuk menyelesaikan masalah ini?
Saya mencuba pelbagai cara untuk menyelesaikan masalah dan melaraskan fungsi agar lebih sepadan dengan fungsi induk PDOStatement PHP, tetapi tidak berjaya!
Perbandingan dengan PDOStatement PHP:
public function fetchAll($how = null, $className = null, $ctorArgs = null)
Adakah saya terlepas sesuatu?
Jenis pemulangan mesti ditetapkan kepada
数组
:Jika anda menggunakan PHP8.1, anda boleh memintas ralat ini dengan menambahkan ulasan
#[ReturnTypeWillChange]