Fehler 503 Grundeinstellungen - Storefront - Bestellabschluss

Hallo Community am frühen Freitag -

ich wollte im Backend bei den Grundeinstellungen im Bestellabschluss etwas verändern und bekomme statt des Formulars folgende Fehlermeldung, die ich leider nicht deuten kann:

Ups! Ein Fehler ist aufgetreten! Die nachfolgenden Hinweise sollten Ihnen weiterhelfen. Could not convert database value “s:0:”"" to Doctrine Type object in vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/ConversionException.php on line 46 Stack trace: #0 vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/ObjectType.php(59): Doctrine\DBAL\Types\ConversionException::conversionFailed(‘s:0:""’, ‘object’) #1 vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/AbstractHydrator.php(297): Doctrine\DBAL\Types\ObjectType->convertToPHPValue(‘s:0:""’, Object(Doctrine\DBAL\Platforms\MySqlPlatform)) #2 vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/ArrayHydrator.php(101): Doctrine\ORM\Internal\Hydration\AbstractHydrator->gatherRowData(Array, Array, Array) #3 vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/ArrayHydrator.php(87): Doctrine\ORM\Internal\Hydration\ArrayHydrator->hydrateRowData(Array, Array) #4 vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/AbstractHydrator.php(147): Doctrine\ORM\Internal\Hydration\ArrayHydrator->hydrateAllData() #5 vendor/doctrine/orm/lib/Doctrine/ORM/AbstractQuery.php(978): Doctrine\ORM\Internal\Hydration\AbstractHydrator->hydrateAll(Object(PDOStatement), Object(Doctrine\ORM\Query\ResultSetMapping), Array) #6 vendor/doctrine/orm/lib/Doctrine/ORM/AbstractQuery.php(924): Doctrine\ORM\AbstractQuery->executeIgnoreQueryCache(NULL, 2) #7 vendor/doctrine/orm/lib/Doctrine/ORM/AbstractQuery.php(766): Doctrine\ORM\AbstractQuery->execute(NULL, 2) #8 Shopware/Controllers/Backend/Config.php(130): Doctrine\ORM\AbstractQuery->getOneOrNullResult(2) #9 Enlight/Controller/Action.php(158): Shopware_Controllers_Backend_Config->getFormAction() #10 Enlight/Controller/Dispatcher/Default.php(523): Enlight_Controller_Action->dispatch(‘getFormAction’) #11 Enlight/Controller/Front.php(226): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp)) #12 Shopware/Kernel.php(153): Enlight_Controller_Front->dispatch() #13 vendor/symfony/http-kernel/HttpCache/HttpCache.php(492): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #14 Shopware/Components/HttpCache/AppCache.php(255): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL) #15 vendor/symfony/http-kernel/HttpCache/HttpCache.php(263): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true) #16 Shopware/Components/HttpCache/AppCache.php(103): Symfony\Component\HttpKernel\HttpCache\HttpCache->pass(Object(Symfony\Component\HttpFoundation\Request), true) #17 shopware.php(101): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request)) #18 {main}  
Loading Bestellabschluss…

Wenn ich das Fenster mit der Nachricht wegklicke, versucht Shopware in einer Endlosschleife das Formular zu laden.

Hat jemand eine Idee

Berni

 

 

Hallo,

schau mal hier: http://forum.shopware.com/discussion/31408/fehler-im-plugin-manager-ups-ein-fehler-ist-aufgetreten/p1

Mit " Could not convert database" findest du einige passende Posts über die Suche

Sebastian

2 „Gefällt mir“

Danke Sebastian für deine schnelle Antwort.

Ich habe mich deinem Rat folgend in den verschiedenen Posts umgesehen und anschließend in meiner Datenbank in der Tabelle s_core_config_values die Werte angeschaut.

Dabei ist mir aufgefallen, dass dort viele Einträge doppelt vorhanden sind. Unter anderem der Wert aus der Fehlermeldung „s:0:“"". Was wäre denn nun das sinnvollste Vorgehen?

Erst einmal den angemahnten Wert löschen oder generell die doppelten Einträge?

Berni

So, nachdem ich noch diverse „Nullstellen“ gefunden und gelöscht habe funktioniert alles wieder einwandfrei.

Danke!

@SebastianKlöpper schrieb:

Hallo,

schau mal hier: http://forum.shopware.com/discussion/31408/fehler-im-plugin-manager-ups-ein-fehler-ist-aufgetreten/p1

Mit " Could not convert database" findest du einige passende Posts über die Suche

Sebastian

Hallo Sebastian, einige Posts zum Thema finden sich zwar schon, jedoch keine direkte Lösung. Was soll man mit genau welchen Einträgen in der DB machen?

Hallo Zusammen,

eine Lösung für das Problem findet ihr hier: http://forum.shopware.com/discussion/comment/160467/#Comment_160467

Vg,
Benjamin  Shopware

Hallo,

ich habe das gleiche Problem, verstehe jedoch die „Lösung“ nicht. Ich habe keine Ahnung, was ein DB Query ist oder wie es gemacht wird. Die Datei s_core_config_value ist mit 93 Zeilen bei mir überschaubar. Wenn ich wüsste, welche Einträge da gelöscht werden müssen, wäre das wohl der einfachste Weg für mich.

s:0:"";  habe ich z.B. mehrere Einträge. Können die gelöscht werden oder genrell alle, die zwischen den " " keinen Inhalt haben?

s:23:„emailadresse“;   ist doppelt vorhanden,

s:24 mit Firmenname sogar 3x

s:2:„01“;  ist 2x vorhanden

können diese doppelten Einträge gelöscht werden?

Es gibt dann weitere Felder, die hinter s: die gleiche Zahl, jedoch in den Anführungszeichen unterschiedliche Einträge haben.

Ich  weiß nicht, wie diese Tabelle korrekt aussehen sollte…

 

Noch eine weitere Frage: Sind hier lediglich aufgrund der PHP-Version die Änderungen im Bestellabschluss nicht möglich? Wenn also hier nichts geändert werden muss, kann man auf die nächste Version warten oder eben für Änderungen kurzfristig auf eine ältere PHP-Version umstellen?

 

Du musst eigentlich nur die beiden Querries aus der Migration ausführen.

UPDATE s_core_config_elements SET value = CONCAT(value, ";") WHERE value LIKE "s%" AND value NOT LIKE "%;"
UPDATE s_core_config_values SET value = CONCAT(value, ";") WHERE value LIKE "s%" AND value NOT LIKE "%;"

 

@Toric schrieb:

Hallo,

ich habe das gleiche Problem, verstehe jedoch die „Lösung“ nicht. Ich habe keine Ahnung, was ein DB Query ist oder wie es gemacht wird. Die Datei s_core_config_value ist mit 93 Zeilen bei mir überschaubar. Wenn ich wüsste, welche Einträge da gelöscht werden müssen, wäre das wohl der einfachste Weg für mich.

 

Hallo @Toric,

die beiden SQL-Befehle in dem Post von @Benjamin Cremer müssen in der Mysql-Konsole oder z. B. mit phpmyadmin ausgeführt werden. In phpmyAdmin: Erst in die Tabelle s_core_config_values wechseln/auswählen und dann auf den Button SQL klicken. In das Eingabefeld kann man die beiden Codezeilen aus dem Post, die als DB Query bezeichnet wurden einfügen. Rechts unten erscheint dann „Abfrage simulieren“ und „OK“. Mit OK werden die Befehle ausgeführt. Vorher ein Backup erstellen!

In der Tabelle wird der Inhalt von Variablen gespeichert, die Shopware verwendet. Dieser liegt in einem speziellen Format vor, daher kommt z.B. s:5: . Teilweise haben die Einträge einen Syntax-Fehler, den B. Cremer als php-Bug einordnen möchte. Es fehlt ein Semikolon, dieses wird durch die beiden SQL-Befehle (UPDATE …) ergänzt. In früheren PHP-Versionen wurde der Syntax-Fehler großzügig ignoriert, in php 5.6.21 nicht mehr, daher die Fehlermeldung. 

Führe unbedingt zuerst die beiden SQL-Befehle aus, bevor Du anfängst in der Tabelle zu löschen. 

Viele Grüße

HT

können diese doppelten Einträge gelöscht werden?

Nein. Ein doppelter Eintrag heißt hier nicht zwingend zu viel.

Das hier sind die Konfigurationswerte. Hier muss man kucken welcher Wert zu welcher Konfiguration gehört. Das s.zahl: gibt an, dass der folgende Wert als String mit der länge Zahl interpretiert werden soll. Wenn du z.B. irgendwo keinen Wert in der Konfiguration stehen hast (z.B. bei Einstellungen->Grundeinstellungen->Shopeinstellungen->Mailer) dann steht da eben ein s:0:„“ - Da ist nämlich ein String mit länge 0 drinne und das ist ja auch korrekt so. Für jeden Konfigurationsparameter gibt es hier eine Zeile.

Hier muss man genau kucken was man macht.

Deine Antwort hat sich mit meinem Nachtrag überschnitten:

Aber wie gesagt/geschrieben:

" Ich habe keine Ahnung, was ein DB Query ist oder wie es gemacht wird. " gilt auch für „aus der Migration ausführen“ :slight_smile:

Ich habe auf Version 5.5 umgestellt, dann ist der Bestellabschluss erreichbar. Da hier jedoch keine Änderungen beabsichtigt sind und ich dort auch nicht die Einstellung gefunden habe, die ich suchte, wärs eigentlich gleich ob die Seite erreichbar ist oder nicht…

 

ohje, alle gleichzeitig. hth und Steinsoftware, da muss ich erstmal lesen. :slight_smile:

@hth

mit dieser Erklärung komme ich fast zurecht :slight_smile: In dem sich öffnenden Feld steht nach meiner Eingabe folgendes:

SELECT * FROM `s_core_config_values` WHERE 1
UPDATE s_core_config_elements SET value = CONCAT(value, ";") WHERE value LIKE "s%" AND value NOT LIKE "%;"
UPDATE s_core_config_values SET value = CONCAT(value, ";") WHERE value LIKE "s%" AND value NOT LIKE "%;"

Die erste Zeile war schon vorhanden, habe ich stehen lassen. Abfrage simulieren erscheint bei mir nicht, lediglich OK. Habe ich geklickt. Anzeige springt zurück in die Tabelle. Ob sich etwas geändert hat, sehe ich da nicht. Im BE funktioniert die Seite Bestellabschluss jedoch immer noch nicht.

Die Select Zeile löschen!

SQL-Befehle werden mit einem Semikolon am Ende der Zeile abgeschlossen. Jetzt weiß ich gerade gar nicht, ob phpmyadmin das Semikolon automatisch hinzufügt, ich benutze dafür eigentlich immer die mySQL-Konsole.  Die beiden Update Zeilen können auch nacheinander einzeln eingefügt und ausgeführt werden ( mit OK).

ok, habe zunächst wieder beide Zeilen gleichzeitig eingefügt, dann erscheint auch “simulieren”. Mit simulieren kommt auch die Fehlermeldung, die irgendwo schonmal gepostet wurde. Bei ok allerdings auch.

 #1064 - Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen bei ‘")’ in Zeile 1

Bei ok:
MySQL meldet: Dokumentation
#1064 - Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen bei ‘UPDATE s_core_config_values SET value = CONCAT(value, “;”) WHERE value LIKE “s%”’ in Zeile 2

BE funktioniert immer noch nicht. Dann nächster Versuch, nur die erste Zeile eingefügt und ok: es sind 3 Datensätze betroffen. BE funktionert wieder.

Dennoch habe ich den 2. Datensatz auch nochmal eingegeben: 0 Datensätze betroffen. BE funktioniert immer noch :slight_smile:

Es ist wohl nicht egal, ob man beide zusammen oder einzeln einfügt.

Nun werde ich das beim Liveshop wiederholfen. :slight_smile:

 

Danke erst einmal an alle die sich hier kümmern!

Ich habe wie bei Toric ähnlich bis gleiche Fehlermeldungen beim Ausführen beider Queris erhalten.
Aber die einzelne Durchführung von

UPDATE s_core_config_elements SET value = CONCAT(value, ";") WHERE value LIKE "s%" AND value NOT LIKE "%;" und dann UPDATE s_core_config_values SET value = CONCAT(value, ";") WHERE value LIKE "s%" AND value NOT LIKE "%;"
hat die Fehlermeldungen behoben und auch die Datenbank wieder auf einen solide funktionierenden Stand gebracht.
@Steinsoftware
Wegen der doppelten Einträge... 
ist so etwas richtig?:

 38386581s:19:"2015-12-11 16:25:05"; 38396582s:19:"2015-12-11 16:25:05"; 

 

Sorry, da ging gerade etwas mit der Benutzung der Tabulator- und Leertaste schief.

 3838 658 1 s:19:"2015-12-11 16:25:05"; 3839 658 2 s:19:"2015-12-11 16:25:05"; So sehen vom Prinzip viele doppelte Einträge aus. Unterschiedliche ID aber gleiche Element ID.