Ich schreibe schon etwas länger PHP Scripte. Die Erfahrungen der letzten Jahre, hat ja gezeigt, dass es nicht immer nur mit einem Update getan ist. In der Regel muss man bei einem PHP Update eine Migration seiner PHP Anwendung durchführen.
PHP Handbuch
https://www.php.net/manual/de/migration81.php
Bei der Migration von PHP 8.0.x auf PHP 8.1.x
gibt es zum Beispiel drei Kleinigkeiten
[size=14]MySQLndhttps://www.php.net/manual/de/migr…patible.mysqlnd[/SIZE]
Die INI-Direktive mysqlnd.fetch_data_copy wurde entfernt. Dies sollte zu keinen für den Benutzer sichtbaren Verhaltensänderungen führen.
[size=12]MySQL-Treiberhttps://www.php.net/manual/de/migr…tible.pdo.mysql[/SIZE]
Integer- und Float-Werte in Ergebnismengen werden nun als native PHP-Typen anstelle von Strings zurückgegeben, wenn emulierte vorbereitete Anweisungen verwendet werden. Dies entspricht dem Verhalten von nativen vorbereiteten Anweisungen. Das vorherige Verhalten kann wiederhergestellt werden, indem die Option PDO::ATTR_STRINGIFY_FETCHES aktiviert wird.
[size=14]MySQLihttps://www.php.net/manual/de/migr…mpatible.mysqli[/SIZE]
mysqli_fetch_fields() und mysqli_fetch_field_direct() geben nun bei der Eigenschaft max_length immer 0 zurück. Dieser Wert kann berechnet werden, indem die Ergebnismenge in einer Schleife durchlaufen und die maximale Länge ermittelt wird. Dies ist der Algorithmus, den PHP zuvor intern verwendet hat.
Die Option MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH hat keine Auswirkung mehr.
Die Option MYSQLI_STORE_RESULT_COPY_DATA hat keine Auswirkung mehr. Die Übergabe eines beliebigen Wertes an den mode-Parameter von mysqli::store_result() hat keine Auswirkung mehr.
mysqli::connect() gibt bei Erfolg nun true anstelle von null zurück.
Der Standard-Fehlerbehandlungsmodus wurde von "silent" auf "exceptions" geändert. Siehe die Seite MySQLi-Berichtsmodus für weitere Details darüber, was das bedeutet, und wie man dieses Attribut explizit setzt. Um das vorherige Verhalten wiederherzustellen, kann folgendes verwendet werden: mysqli_report(MYSQLI_REPORT_OFF);
Klassen, die mysqli_stmt::execute() erweitern, müssen nun den zusätzlichen optionalen Parameter angeben.
Und dann gibt es noch die Frage, wie man PHP mit MYSQL verbindet
https://dev.mysql.com/downloads/connector/php-mysqlnd/
auch vor diesem Hintergrund
https://www.golem.de/0403/30247.html
Aber man verwendet ja kein MySQL sondern einen MySQL Fork...
Das ist es, wovor ich eigentlich immer zurückschrecke.
Meiner Meinung nach sollte man sich die Zeit nehmen und in einer Textumgebung eine Wiederherstellung versuchen. Da die Wiederherstellung schieflaufen kann, ist eine Textumgebung wichtig.