Jump to content
xt:Commerce Community Forum

Ständig Fehlermeldungen per Mail - SQL Error xt:Commerce VEYTON


Sofasilvi

Recommended Posts

Hallo zusammen,

ich hatte irgendwann schon mal danach gefragt bzw. mich an einen Thread gehangen, aber eine Antwort gab es dazu bislang nicht. Vielleicht kann mir diesmal jemand weiterhelfen?

Ich bekomme immer wieder in unregelmäßigen Abständen Fehlermails mit dem Betreff "SQL Error - xt:Commerce VEYTON"

Die Inhalte dieser Mails sind unterschiedlich.

Mal mysql error: [1062: Duplicate entry ...

oder mysql error: [1048: Column 'orders_id' cannot be null ...

oder oder

Ich kann damit leider nichts anfangen. Der Shop läuft offenbar ohne Probleme, ich bekomme diese Mails nicht, wenn ich im Backend arbeite oder gearbeitet habe, oft genug einfach so zwischendurch, wenn ich schon lange gar nichts mehr verändert habe.

Heute hat's mir dann den Vogel abgeschossen. Ich habe innerhalb von einer knappen halben Stunde 335 dieser Mails erhalten!

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 '\' AND 5129=5129 and group_permission.permission IS NULL and shop.permission I' at line 1] in EXECUTE("SELECT COUNT(*) FROM xt_products p LEFT JOIN xt_products_description pd ON p.products_id = pd.products_id INNER JOIN xt_products_to_categories p2c ON p2c.products_id = p.products_id left JOIN xt_products_permission group_permission ON (group_permission.pid = p.products_id and group_permission.pgroup = 'group_permission_1' ) left JOIN xt_products_permission shop ON (shop.pid = p.products_id and shop.pgroup = 'shop_1' ) LEFT JOIN xt_seo_url su ON (p.products_id = su.link_id and su.link_type='1') WHERE p.products_id != '' and pd.language_code = 'de' AND (pd.products_keywords LIKE '%1%' or pd.products_name LIKE '%1%' or p.products_model LIKE '%1%' or p.products_ean LIKE '%1%' ) and p.manufacturers_id = '3' and p2c.

categories_id = 1\' AND 5129=5129 and group_permission.permission IS NULL and shop.permission IS NULL and p.products_status = '1' and su.language_code = 'de' LIMIT 1")

Zwischendurch bekam ich mal kurzzeitig den Fehler 500, wenn ich auf Kategorienlinks im Shop geklickt habe.

Ich habe nichts am Shop verändert! Diese Mailflut hörte so plötzlich wieder auf, wie sie begonnen hat. Danach trat Fehler 500 auch nicht mehr auf.

Ich habe als erstes mal eine Anfrage an den Webhoster geschrieben, ob da irgendwas gemacht wurde. Antwort:

... prüfen Sie bitte die Konfiguration des Shops im Backend. Es ist dort offenbar eine Funktion aktiv, die bei Meldungen des Shops per Email benachrichtigt. Unsererseits wurde definitiv nichts am Server oder gar Ihren Ihrem Shop geändert.

Mir wäre zunächst schon geholfen, wenn mir jemand die Tomaten von den Augen nimmt und mir verrät, wo ich diese Mailverschickerei an mich abstellen kann. Denn ehrlich gesagt, wenn der Shop trotzdem problemlos läuft, muss ich diese Mails nicht haben, die mich nicht weiterbringen und mir heute mein Postfach fast lahmgelegt haben.

Trotzdem wüsste ich natürlich gern, was sie bedeuten und wie es sein kann, dass laufend irgendwelche kleinen Fehler passieren, ohne dass ich am Shop war.

Liebe Grüße

Silvia

Link to comment
Share on other sites

Hi,

versuch es mal hierrüber:

Einstellungen->Konfiguration->EMail Einstellungen->EMail Debug = false

Damit sollten die Mails aufhören. Allerdings gibt es wohl ein kleineres Problem mit dem Shop. Hast du im Schnitt sehr viele Besucher im Shop? Könnte ggf eine überlastung der DB sein. Frag doch mal deinen Hoster wie hoch die Auslastung deiner DB ist.

LG

Link to comment
Share on other sites

Danke für den Tipp, aber bei den Email-Einstellungen gibt es keine Debug-Einstellung... (Version 4.0.14)

Dazu habe ich aber diesen Thread gefunden, nachdem Du mich darauf gebracht hast, wie die Dinger heißen. So müsste es ja dann auch gehen...?

Viele Besucher - was heißt viele? Im Schnitt 300 täglich, das ist doch nicht viel, oder? Unser Hoster ist Alfahosting auf Empfehlung aus diesem Forum.

Danke und LG!

Link to comment
Share on other sites

Hallo,

habe ein ähnliches Problem, die Fehlermeldung kommt, warscheinlich, vom Master/Slave. Habe die Version aus der 14 wieder eingebaut, da bei der neuen Version eine Funktion fehlt, die ich brauche.

Werde das mal machen was Sofasilvi (Pixeleyes) schreibt.

Grüße

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 'p.products_model = '4207004' and group_permission.permission = 1 and shop.perm' at line 1] in EXECUTE("SELECT p.products_id , p.products_master_model FROM xt_products p left JOIN xt_products_permission group_permission ON (group_permission.pid = p.products_id and group_permission.pgroup = 'group_permission_3' ) left JOIN xt_products_permission shop ON (shop.pid = p.products_id and shop.pgroup = 'shop_1' ) LEFT JOIN xt_seo_url su ON (p.products_id = su.link_id and su.link_type='1') WHERE p.products_id != '' p.products_model = '4207004' and group_permission.permission = 1 and shop.permission = 1 and p.products_status = '1' and su.language_code = 'de' ")

Link to comment
Share on other sites

Jede DB-Fehlermeldung sollte an sich ernst genommen werden

@Amrit

hier fehlt bei Ihnen ein AND zwischen !=" und p.products_model

WHERE   p.products_id != ''  p.products_model = '4207004' [/PHP]

@Sofasilvi

in deiner Fehlermeldung ist folgendes enthalten:

1\' AND 5129=5129

das würde ich prüfen, nicht das einer versucht z.b. über das Formular der erweiterten Suche was einzuschleusen

Link to comment
Share on other sites

  • 2 weeks later...

Hallo,

da Silvia bereits schrieb, sie könne nichts mit den Fehlermeldungen anfangen, gehe ich mal davon aus, dass sie auch nichts mit SQL Anweisungen oder Programmierung am Hut hat.

Die oben beschriebenen Fehlermeldungen sind Fehler, die von der Datenbank ausgeworfen werden. Das ist grundsätzlich immer ernst zu nehmen. Konsequenz könnte ja immerhin sein, dass die Datenbank zusammenbricht und somit der Shop insgesamt nicht mehr läuft. Deshalb: Die Fehler-Mails haben ihren Sinn. Will man das Risiko eingehen nicht rechtzeitig zu erfahren, wenn wirklich etwas nicht stimmt, kann man die natürlich abschalten. Empfehlen würde ich das aber ganz sicher nicht.

Beide Fehler treten bei einem SELECT auf. Das bedeutet, dass die Tabelle mit den Produkten ausgelesen werden soll, was offenbar an einem Syntaxfehler scheitert. Deshalb gehe ich davon aus, dass sich der eigentliche Fehler in einem Plugin befindet (vorausgesetzt die Software des Shops läuft einwandfrei).

Entsprechend einfach ist die Lösung: Alle zusätzlich hinzugefügten Plugins deinstallieren und schrittweise wieder installieren und jedes Mal den Shop neu testen. Sobald die Fehlermeldungen erneut auftauchen müsste der Schuldige gefunden sein.

Dann kann man sich an den jeweiligen Support wenden.

Link to comment
Share on other sites

Hallo knitzie,

das ist sicherlich ein guter und richtiger Ansatz, danke für den Hinweis. Aber die Umsetzung kann ich mir gerade noch nicht vorstellen. Wenn ich wenigstens wüsste, WAS genau diese Fehlermeldung auslöst...

Ich habe nun seit Tagen keine Fehlermeldung mehr bekommen. Das heißt, wenn ich ein Plugin deaktiviere, dann weiß ich nie, wann ich denn nun "zu Ende getestet" habe. Zwei bis drei Wochen Deaktivierung pro Plugin wären da wohl Minimum.

Vielleicht können die davon Betroffenen und hier Mitlesenden/-schreibenden zusammen via Ausschlussprinzip suchen, so dass wir nicht alles und jedes Plugin in Betracht ziehen müssen? Also Gemeinsamkeiten suchen?

Ich ärgere mich im Nachhinein sehr, dass ich damals nicht darauf geachtet habe, als die erste Fehlermeldung kam. Da hätte ich sicher noch relativ einfach nachvollziehen können, was als letztes am Shop verändert wurde.

Mindestens genauso ärgere ich mich aber auch über fehlerhafte Plugins, die sowas verursachen und/oder teilweise gar nicht funktionieren. :rolleyes: Aber das ist ein anderes Thema...

Link to comment
Share on other sites

Hi Silvia,

den Ärger kann ich verstehen und auch die Abneigung gegen den Aufwand ;)

Auch wenns vermutlich unnötig ist zu fragen, weil du sicher schon daran gedacht hast: Die erste Fehlermail kannst du nicht auf deinem Mail-Server heraussuchen? Vielleicht steckt die ja noch im Archiv, dann könntest du vielleicht abschätzen, wann das ganze los ging und welche Plugins damals installiert waren.

Da ich auch nicht weiß wie viele Plugins du in deinem Shop hast: Es sollte nur um solche gehen, die etwas mit Produkten (aka Artikeln) zu tun haben, weil ja genau diese Daten ausgelesen werden sollen, laut Fehlertext.

Außerdem: Du sagtest du selbst hättest nichts am Shop gemacht als die letzten Mails kamen. Das bedeutet vermutlich, dass es um das frontend geht. Du kannst also z.B. so testen, dass du einen Test-Kunden anlegst und mit dem einmal quer durch den Shop klickst, Testbestellungen aufgibst und was man bei dir noch so machen kann ;)

Das Ausschlussprinzip ist ja eine gute Sache, aber niemand weiß welche Plugins du installiert hast und um ehrlich zu sein ist das Forum nicht so hoch frequentiert, dass ich darauf setzen würde schnelles feedback zu bekommen.

Link to comment
Share on other sites

Hi, habe im Plugin gesucht aber nichts gefunden, weiß jemand wo das ist/ sein kann

Es gibt verschiedene Möglichkeiten die SQL Anfrage im Code abzufeuern. Zum Beispiel:

1. Mit der Methode Execute

2. mit adminDB_DataRead

Eines von beiden müsstest du also im Plugin-Code finden. Und dort drin verbirgt sich dann der Syntaxfehler.

Im 1. Fall:

wird wohl soetwas stehen wie

Execute("SELECT ... WHERE p.products_id != '' p.products_model = ...

In diesem Fall musst du vor das p.products_model = "AND" schreiben. Sodass dort steht:

Execute("SELECT ... WHERE p.products_id != '' AND p.products_model = ...

Die drei Pünktchen verwende ich hier zur Abkürzung, dort wird noch einiges an Zeug stehen, also nicht verwirren lassen und bitte nicht übernehmen.

Im 2. Fall sieht das etwas anders aus. Zum Beispiel steht dann dort:

new adminDB_DataRead($this->_table, $this->_table_lang, $this->_table_seo, $this->_master_key, 'Vergleichszeug');

Der letzte String ist fehlerhaft, also das was in meinem Beispiel 'Vergleichszeug' heißt. Auch da muss dann vor dem p.products_model ein AND eingefügt werden.

Ich denke mal es wäre am einfachsten, wenn du nach den beiden Fällen suchst und sobald du was gefunden hats genau die Codezeile hier postest.

Link to comment
Share on other sites

Hi, das einzige was ich gefunden habe - im Master/Slave Plugin ist das

$this->sql_products->setFilter('Language');

$this->sql_products->setSQL_WHERE("and p.products_model != '' and p.products_master_flag = '1' ");

$this->sql_products->setSQL_SORT(' p.products_model ASC');

da steht "and" aber kleingeschrieben.

noch ne Info.

habe Version 14 auf 16 update und das M/S Plugin aus der 14ner Version, weil bei dem Neuen eine Funktion fehlt die ich sehr gut finde/ brauche.

Gruß

Manfred

Link to comment
Share on other sites

Moin moin,

Deine Fehlermeldung, die du auf der ersten Seite gepostet hast lautete:

...to use near 'p.products_model = '4207004' and group_permission.permission = 1 and shop.perm' at line 1] in EXECUTE("SELECT ... FROM ... WHERE p.products_id != '' p.products_model = '4207004' and group_permission.permission = 1 ...

Auch hier mal aufs Wichtige eingekürzt.

Die Anweisung

$this->sql_products->setSQL_WHERE("and p.products_model != '' and p.products_master_flag = '1' ");

ist völlig richtig - ob das AND groß oder klein geschrieben ist spielt keine Rolle.

Allerdings ist das offensichtlich nicht die richtige Anweisung, denn in dieser wird die Variable products_model nur geprüft ob sie nicht leer ist und ob die Variable products_master_flag auf 1 gesetzt wird.

In deiner Fehlermeldung oben hingegen wird die model Variable mit einem Wert verglichen (nach dem Wert brauchst du im Code nicht zu suchen, der ist dynamisch). Außerdem taucht dort die Varibale group_permission.permission auf, die in deiner Anweisung fehlt. Umgekehrt steht in deiner fehlermeldung nichts von der Variable products_master_flag, die in der Anweisung auftaucht.

Es ist also gut möglich, dass deine Fehlerausgabe gar nichts mit dem M/S-Plugin zu tun hat oder eben, dass du die richtige Stelle noch nicht gefunden hast.

Link to comment
Share on other sites

  • 2 weeks later...

Hallo,

ich habe auch seit einer Woche diese Emails. Dazu kommen noch Probleme, dass Kunden nicht mehr bestellen können und / oder keine Kundenkonten anlegen können, ich habe es gerade reproduziert. In den Emails steht immer das drin:

mysql error: [1062: Duplicate entry '2171' for key 1] in EXECUTE("INSERT INTO xt_customers_addresses ( CUSTOMERS_ID, CUSTOMERS_GENDER, CUSTOMERS_DOB, CUSTOMERS_PHONE, CUSTOMERS_FAX, CUSTOMERS_COMPANY, CUSTOMERS_COMPANY_2, CUSTOMERS_COMPANY_3, CUSTOMERS_FIRSTNAME, CUSTOMERS_LASTNAME, CUSTOMERS_STREET_ADDRESS, CUSTOMERS_SUBURB, CUSTOMERS_POSTCODE, CUSTOMERS_CITY, CUSTOMERS_COUNTRY_CODE, ADDRESS_CLASS, DATE_ADDED )

Ich habe seit Monaten NICHTS am Shop gemacht, getreu nach dem Motto "Never touch a running system".

Link to comment
Share on other sites

Duplicate entry '2171' for key 1] in EXECUTE("INSERT INTO xt_customers_addresses

Sagt dir:

  • Will ein Programmteil deines Shops einen neuen Eintrag in die Datenbanktabelle xt_cusomers_addresses einfügen. Sowas passiert, wenn ein neuer Kunde, bzw. eine neue Adresse angelegt wird. Beim Standardshop (ohne Plugins) also bei der Registrierung oder bei "neue Adresse hinzufügen"
  • Versucht der Programmteil die Adresse mit dem key 2171 anzulegen.

Der zweite Punkt macht mich sehr stutzig, denn normalerweise wird kein unique key übergeben, wenn man ein INSERT ausführt. Außerdem weiß ich nicht was "key 1" sein soll, aber womöglich hast du das hier nur für den Post ersetzt?

Jedenfalls ist das der Grund dafür warum deine Kunden keine Konten anlegen können. es scheitert jedesmal an diesem Fehler.

Nebenbei bemerkt ist das ein wunderbares Beispiel dafür, warum man diese E-Mail Benachrichtigungen NIE abstellen sollte ; )

Link to comment
Share on other sites

Ja, aber warum funktioniert das plötzlich nicht mehr...??? Ich habe nichts am Shop oder an der DB gemacht...geht seit etwa ner Woche so...die letzte Email, dass sich ein Neukunde angemeldet hat, war am Sonntag (02.12.2012) ich denke, dass es seit dem nimmer funktioniert...

Wenn ich versuche, ein Konto anzulegen, kommt folgendes:

Liebe Kundin, lieber Kunde.

Leider ist ein Fehler beim Aufruf unserer Webseite aufgetreten.

Bitte versuchen Sie es später noch einmal.

Vielen Dank für Ihr Verständnis - wir freuen uns auf Ihren nächsten Besuch.

Sollte das Problem weiterhin bestehen, wenden Sie sich bitte an unseren Kundenservice.

Das "Lustige" ist: Der Kunde wird aber angelegt, allerdings nur mit seiner Email Adresse, kein Name und nix weiter.

Link to comment
Share on other sites

Warum kann ich dir auf blauen Dunst nicht sagen, da ich deinen Shop nicht kenne.

Ich würde zuerstmal die Datenbank von allen Falsch-Einträgen säubern. Außerdem würde ich wie immer die Plugins von Drittanbietern prüfen, ob sie daran Schuld sind.

Wie du aber in meinem vorangegangenen Post schon siehst, habe ich mich gefragt, was dieses "key 1" ist. Hast du das hier im Forum geschrieben oder steht das in deiner Mail? Was sagt der Datenbank log zu dem Thema?

Link to comment
Share on other sites

Datenbank aufräumen. Den Fehler kennst du jetzt, jetzt musst du die Ursache suchen.

Fang doch einfach mal damit an in der Tabelle xt_customers_addresses die Einträge zu löschen, deren "key 1" auf dem Wert steht, den das Programm da ständig neu anlegen will. also zum Beispiel 2171, wegen dem Fehlerstück:

Duplicate entry '2171' for key 1

Vorher bitte ein backup der Datenbank anlegen.

Link to comment
Share on other sites

Das kann ich nachempfinden. Ich selbst schreibe aktuell ein Plugin und nutze den Shop selbst nicht. Aber ich habe den Eindruck (von Beiträgen hier im Forum), dass viele Module nicht sauber programmiert sind oder dass es keinen support gibt.

Veyton verlässt sich nach meinem Geschmack zu sehr auf die Module anderer Anbieter um selbst nicht mehr Aufwand zu haben als wirklich zwingend erforderlich ist. Und über das handling von Support und Dokumentation muss ich mich hier auch nicht weiter auslassen.

Bzgl. shopsysteme: Vergiss die beiden Großen nicht: OXID und Magento. Die sind zumindest dokumentiert ;)

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...