Unser Client verfügt über eine Drupal-Website, aber der Host zwingt alle Clients, von PHP 7.4 auf PHP Version 8 umzusteigen, was zu einem schwerwiegenden PDO-Fehler führt, der das Laden der Website verhindert.
Fehler erhalten:
Schwerwiegender Fehler: Aussage DrupalCoreDatabaseStatement::fetchAll(int $mode = PDO::FETCH_DEFAULT, $column_index = null, $constructor_arguments = null) muss mit PDOStatement::fetchAll(int $mode = kompatibel sein PDO::FETCH_DEFAULT, gemischt...$args) /usr/www/users/kdpsipxqzt/core/lib/Drupal/Core/Database/Statement.php In Zeile 168
Die Funktion, die das Problem verursacht:
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); } }
Hat jemand eine Idee, dieses Problem zu lösen?
Ich habe mehrere Möglichkeiten zur Fehlerbehebung ausprobiert und die Funktion so angepasst, dass sie besser mit der übergeordneten PDOStatement-Funktion von PHP übereinstimmt, aber kein Erfolg!
Vergleich mit PHPs PDOStatement:
public function fetchAll($how = null, $className = null, $ctorArgs = null)
Habe ich etwas verpasst?
返回类型必须设置为
数组
:如果您使用的是 PHP8.1,您可以通过添加注释
#[\ReturnTypeWillChange]
来绕过该错误