Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
php:serialize [2016/08/31 10:10] webproducer angelegt |
php:serialize [2021/03/26 12:10] (aktuell) webproducer Troubleshooting |
||
---|---|---|---|
Zeile 15: | Zeile 15: | ||
* Bei Änderung der Namen oder Sichtbarkeit der Objekt-Variablen ist die Nutzung des serialsierten Objektes nicht mehr möglich. | * Bei Änderung der Namen oder Sichtbarkeit der Objekt-Variablen ist die Nutzung des serialsierten Objektes nicht mehr möglich. | ||
* Beim Speichern in eine mySQL-Datenbank sollte ein Feld vom Typ "BLOB" verwendet werden. | * Beim Speichern in eine mySQL-Datenbank sollte ein Feld vom Typ "BLOB" verwendet werden. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Troubleshooting ===== | ||
+ | |||
+ | Sollte die Zurückwandlung eines serialisierten Strings nicht mehr möglich sein gibt die Funktion "unserialize" lediglich den Rückgabewert von FALSE zurück. Die genaue Position im String, an der das Problem auftritt, wird in einer NOTICE ausgegeben. Mit dem folgenden PHP-Code ist es in der Entwicklung möglich, sich die Stelle anzeigen zu lassen: | ||
+ | |||
+ | <code php> | ||
+ | $model = unserialize( $value ); | ||
+ | |||
+ | if( $model === false ) // wenn ein Fehler aufgetreten ist | ||
+ | { | ||
+ | ini_set( 'display_errors', 1 ); // Fehlermeldungen anzeigen | ||
+ | error_reporting( E_NOTICE ); // nur NOTICE ausgeben | ||
+ | $csvModel = unserialize( $value ); // nochmal versuchen | ||
+ | echo $value; | ||
+ | exit; | ||
+ | } | ||
+ | </code> | ||