suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Erforderlich, um mit PDOStatement::fetchAll(int $mode = PDO::FETCH_DEFAULT, Mixed ...$args) kompatibel zu sein.

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?

P粉308089080P粉308089080382 Tage vor498

Antworte allen(1)Ich werde antworten

  • P粉265724930

    P粉2657249302023-12-11 11:18:48

    返回类型必须设置为数组

    public function fetchAll($mode = null, $column_index = null, $constructor_arguments = null) : array { ... }

    如果您使用的是 PHP8.1,您可以通过添加注释 #[\ReturnTypeWillChange] 来绕过该错误

    Antwort
    0
  • StornierenAntwort