"Shop offline!" nach "Zahlungspflichtig bestellen" / SQL-Fehler

Hallo,

nach dem Update von 4.10.1 auf 4.10.5 kommt nun immer beim Absenden einer Bestellung “Shop offline!”. Anscheinend ist es ein Datenbankfeld in der SQL-Datenbank. Im Logfile steht unter anderem:

mysql error: [1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘varchar (100) not null = ‘’’ at line 1] in EXECUTE (Insert into oxorder set oxid = ‘f9f96504bc02b2c086ffbe0287e1d06a’,oxshopid = ‘oxbaseshop’,oxuserid = ‘18f15bd3d01f1827f9da6bb9e98af4d9’,oxorderdate = ‘2017-10-19 09:31:47’,oxordernr = ‘0’,oxbillcompany = ‘GmbH’,oxbillemail = ‘[email protected]’,oxbillfname = ‘Admin’,oxbilllname = ‘Istrator’,oxbillstreet = ‘Str.’,oxbillstreetnr = ‘16’,oxbilladdinfo = ‘’,oxbillustid = ‘’,oxbillcity = ‘Berlin’,oxbillcountryid = ‘a7c40f631fc920687.20179984’,oxbillstateid = ‘’,oxbillzip = ‘12345’,oxbillfon = ‘’,oxbillfax = ‘’,oxbillsal = ‘MR’,oxdelcompany = ‘’,oxdelfname = ‘’,oxdellname = ‘’,oxdelstreet = ‘’,oxdelstreetnr = ‘’,oxdeladdinfo = ‘’,oxdelcity = ‘’,oxdelcountryid = ‘’,oxdelstateid = ‘’,oxdelzip = ‘’,oxdelfon = ‘’,oxdelfax = ‘’,oxdelsal = ‘’,oxpaymentid = ‘128b20c12348195ebf819b86f7448cb6’,oxpaymenttype = ‘oxidinvoice’,oxtotalnetsum = ‘23’,oxtotalbrutsum = ‘27.37’,oxtotalordersum = ‘63.07’,oxartvat1 = ‘19’,oxartvatprice1 = ‘4.37’,oxartvat2 = ‘0’,oxartvatprice2 = ‘0’,oxdelcost = ‘35.7’,oxdelvat = ‘19’,oxpaycost = ‘0’,oxpayvat = ‘0’,oxwrapcost = ‘0’,oxwrapvat = ‘0’,oxgiftcardcost = ‘0’,oxgiftcardvat = ‘19’,oxcardid = ‘’,oxcardtext = ‘’,oxdiscount = ‘0’,oxexport = ‘0’,oxbillnr = ‘’,oxbilldate = ‘0000-00-00’,oxtrackcode = ‘’,oxsenddate = ‘0000-00-00 00:00:00’,oxremark = ‘’,oxvoucherdiscount = ‘0’,oxcurrency = ‘EUR’,oxcurrate = ‘1.00’,oxfolder = ‘ORDERFOLDER_NEW’,oxtransid = ‘’,oxpayid = ‘’,oxxid = ‘’,oxpaid = ‘0000-00-00 00:00:00’,oxstorno = ‘0’,oxip = ‘91.41.218.58’,oxtransstatus = ‘NOT_FINISHED’,oxlang = ‘0’,oxinvoicenr = ‘0’,oxdeltype = ‘oxidstandard’,oxtsprotectid = ‘’,oxtsprotectcosts = ‘0’,oxisnettomode = ‘1’,mo_viaebay__via_id = null,mo_viaebay__last_sync = ‘’,mo_viaebay__shipping_state = null,mo_viaebay__payment_state = null,pbtpuitxt = ‘’,ebayorder_id = ‘’,ebay_complete = ‘’,ebay_last_modified = ‘’,ebay_remove = ‘’,ebay_user = ‘’,ebay_message = ‘’,oxtrackidstatus = ‘’,oxpaidstatus = ‘’,oxsenddatestatus = ‘’,externaltransactionid = null,ebaypaystatus = ‘’,ebaysendstatus = ‘’,ebayorder_nr = ‘’,externaltransactionid varchar (100) not null = ‘’, Array) with user dbo65999xxxx

Der Fehler scheint von dem Eintrag externaltransactionid varchar (100) not null = ‘’ zu kommen (ist ein Feld mit dem Namen “externaltransactionid varchar (100) not null” überhaupt zulässig?

Das eBay-Modul ist deaktiviert und sogar im Modul-Ordner gelöscht - trotzdem wird weiterhin versucht in die Datenbank-Felder zu schreiben. Wo kann man das deaktivieren bzw. das Modul rückstandsfrei entfernen?

Beste Grüße & vielen Dank für eine Hilfe!

Prüfe mal die Tabelle, ob da solche Felder existieren. Der Shop holt sich immer dynamisch die Liste der Felder aus der DB, das muss also nicht zwangsweise von Modul selbst kommen, sondern einfach weil das Feld bereits da ist.
Wurde nach dem Entfernen des ebay Moduls tmp/ geleert?

in der Tabelle oxorder existieren u.a. eine Spalte “externaltransactionid varchar (100) not null” und eine Spalte “externaltransactionid”

tmp geleert - views neu aufgebaut…

Prüfe mal ab hier, ob alle Felder in der Tabelle “oxorder” tatsächlich existieren:


oxtransid = '',oxpayid = '',oxxid = '',oxpaid = '0000-00-00 00:00:00',oxstorno = '0',oxip = '91.41.218.58',oxtransstatus = 'NOT_FINISHED',oxlang = '0',oxinvoicenr = '0',oxdeltype = 'oxidstandard',oxtsprotectid = '',oxtsprotectcosts = '0',oxisnettomode = '1',mo_viaebay__via_id = null,mo_viaebay__last_sync = '',mo_viaebay__shipping_state = null,mo_viaebay__payment_state = null,pbtpuitxt = '',ebayorder_id = '',ebay_complete = '',ebay_last_modified = '',ebay_remove = '',ebay_user = '',ebay_message = '',oxtrackidstatus = '',oxpaidstatus = '',oxsenddatestatus = '',externaltransactionid = null,ebaypaystatus = '',ebaysendstatus = '',ebayorder_nr = '',externaltransactionid varchar (100) not null = '', 

ja, die sind alle vorhanden (in der Tabelle oxorder existieren u.a. eine Spalte “externaltransactionid varchar (100) not null” und eine Spalte “externaltransactionid”)

Ok, dann kopiere die SQL Query und füge Ihn direkt unter Service/Tools ein bzw. unter phpMyAdmin direkt ein. Spätestens hier wirst du sehen woran es hackt.

SQL query (1) : Insert into oxorder set oxid = ‘f9f96504bc02b2c086ffbe0287e1d06a’,oxshopid =
‘oxbaseshop’,oxuserid = ‘18f15bd3d01f1827f9da6bb9e98af4d9’,oxorderdate =
'2017-10-19 09:…

Error message : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘varchar (100) not null = ‘’, Array’ at line 1

Error number : 1064

PHP: 5.6.31
MySQL: 5.5.57-0+deb7u1-log

Nur zum Verständnis aller: das Feld heißt bei dir wirklich

“externaltransactionid varchar (100) not null”

??

Wenn ja, dürfte da einiges schief gelaufen sein beim Update - solche Feldnamen sind unzulässig.

ja - genau, das war ja auch meine Vermutung.

Was kann ich denn da jetzt tun?

[QUOTE=Mirko R;190092]Was kann ich denn da jetzt tun?[/QUOTE]

Einen dump machen und dann das Feld löschen :slight_smile:

Das Feld “externaltransactionid varchar (100) not null” ist nun gelöscht - die Fehlermeldung bleibt die gleiche:

SQL query (1) : Insert into oxorder set oxid = ‘f9f96504bc02b2c086ffbe0287e1d06a’,oxshopid =
‘oxbaseshop’,oxuserid = ‘18f15bd3d01f1827f9da6bb9e98af4d9’,oxorderdate =
'2017-10-19 09:…

Error message : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘varchar (100) not null = ‘’, Array’ at line 1

Error number : 1064

Views aktrualisiert? Temp gelöscht?

in der Tabelle oxorder die Spalte “externaltransactionid varchar (100) not null” gelöscht

tmp geleert - views neu aufgebaut…

jetzt läufts wieder - [B]besten Dank für die Tips![/B]

Bleibt nur die Frage, wo kam das her? Und wieso versucht ein längst deaktiviertes Modul (z.B. eBay von Exxon) noch weiter in die Datenbank zu schreiben?

Das lag mit Sicherheit aus der Kombi alter Cache / alte Views. Wenn das Modul deaktiviert ist, schreibt es auch nichts (mehr) in die DB :slight_smile:

wie gesagt, es versucht nicht in die Datenbank zu schreiben. Siehe Beitrag #2