Fehler beim speichern einer Newsletter -> SQL Fehler

Hallo,

Shopware-Version: 5.5.3.

Beim Speichern einer neuen Newsletter bekomme ich folgende Fehlermeldung:

An exception occurred while executing ‘INSERT INTO s_campaigns_mailings (datum, groups, subject, sendermail, sendername, plaintext, templateID, languageID, status, locked, recipients, read, clicked, customergroup, publish, timed_delivery) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)’ with params

(Leider nicht vollständig im Log)

 

  1. Neue Newsletter erzeugen:

  1. Ausfüllen Tab “Newsletter Editor” und "Einstellungen (Alle pflichtpfeler, verschiedene Kombinationen ausprobiert)

  2. Obiger Fehler landet im Log. Im UI direkt gibts es eine Notfication "Fehler beim Speichern

 

Bitte um hilfe! Ich weiß nicht was ich noch nachsehen soll :frowning:

Danke & Grüße

 

 

Irgendein Plugin aktiv was beim Newsletter eingreift?

Leider nicht vollständig im Log

Schau mal im Server-Log (nicht Shopware Log).

@R4M schrieb:

Leider nicht vollständig im Log

Schau mal im Server-Log (nicht Shopware Log).

Wo finde ich den? Ich kenne den Backend-Log und den System-Log unter Einstellungen->Logfile

 

EDIT: Ah man kan den Herunterladen. 

Vollständiger fehler:

[2019-01-03 10:49:18] core.CRITICAL:
 An exception occurred while executing 
 ‚INSERT INTO s_campaigns_mailings (datum, groups, subject, sendermail, sendername, plaintext, templateID, languageID, status, locked, recipients, read, clicked, customergroup, publish, timed_delivery)
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)‘ 
  with params [„2019-01-03“, „a:3:{i:0;a:0:{}i:1;a:0:{}i:2;a:0:{}}“, „SomeString“, „some@email.de“, „some@email.de“, 0, 1, 1, -1, null, 0, „0“, 0, „EK“, 0, null]:
   SQLSTATE[42000]: Syntax error or access violation: 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 ‚groups, subject, sendermail, sendername, plaintext, templateID, languageID, stat‘
 at line 1 {„uid“:„43a82b1“}

 

Danke schonmal 

@raymond schrieb:

Irgendein Plugin aktiv was beim Newsletter eingreift?

Es handelt sich um größenteils um eine Vanilla Installation. Es ist ein Theme installiert, plugins mäßig nahe zu nichts, bis auf den JTL-Connector. Eigentlich nichts dabei wo ich an Newsletter denken würde.

 

Danke:) 

Ich meine die error_log - bitte nicht mit Shopware Log verwechseln. Liegt meist außerhalb vom httpdocs-Order der Domain - ggf. beim Hoster anfragen.

Ansonsten auch mal die Hinweise hier mit beachten:

 

Hi,

laut der Fehlermeldung ist deine Shopware nicht mit deiner Datenbank kombatibel.

Ein Update bzw. Downgrade sollte das Problem lösen.

Gruß Heiner

Nachdem nun nachträglich doch noch die komplette Fehlermeldung aufgetaucht ist, sind wir ja schon einen kleinen Schritt weiter. In einem SW Shop Version 5.x sollte dieses INSERT keine Probleme bereiten. Da kann ich keinen Fehler erkennen, es sei denn die Datenbank-Tabelle sieht anders aus. Ab SW 5.x kam wohl die Spalte „timed_delivery“ hinzu, wird hier aber nicht bemängelt. Ich würde mit einem Datenbank-Tool mal die Tabelle „s_campaigns_mailings“ näher ansehen, ob dort auch wirklich die Spalten stehen, die beim INSERT aufgeführt sind. Sollte die Spalte „timed_delivery“ fehlen dann einfach mit Datentyp „DATETIME“ anlegen und den Newsletter neu versuchen.

Zum Vergleichen:

CREATE TABLE IF NOT EXISTS `s_campaigns_mailings` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `datum` date DEFAULT NULL,
  `groups` mediumtext COLLATE utf8_unicode_ci NOT NULL,
  `subject` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
  `sendermail` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `sendername` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `plaintext` int(1) NOT NULL,
  `templateID` int(11) NOT NULL DEFAULT '0',
  `languageID` int(11) NOT NULL,
  `status` int(11) NOT NULL DEFAULT '0',
  `locked` datetime DEFAULT NULL,
  `recipients` int(11) NOT NULL,
  `read` int(11) NOT NULL DEFAULT '0',
  `clicked` int(11) NOT NULL DEFAULT '0',
  `customergroup` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
  `publish` int(1) unsigned NOT NULL,
  `timed_delivery` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

 

1 „Gefällt mir“

@h_lohaus schrieb:

Hi,

laut der Fehlermeldung ist deine Shopware nicht mit deiner Datenbank kombatibel.

Ein Update bzw. Downgrade sollte das Problem lösen.

Gruß Heiner

Hi,

welche versionen werden den Unterstützt? Ich habe Mysql in der Version 8.0.13 und Shopware Version 5.5.3. 

(Shopware 5 - Tutorials & FAQs - Systemanforderungen / Hosting)

 

Gruß

 

Könnte mir vorstellen, dass es an der Spalte „groups“ liegt. Dazu gab es auch schonmal einen PR für die Shopseiten in Shopware: Added backticks for reserved mysql keyword by SieGeL2k16 · Pull Request #1678 · shopware/shopware · GitHub

Wäre also ein MySQL 8 Problem. Müsste man aber mal konkret verifizieren.

1 „Gefällt mir“

@R4M schrieb:

Nachdem nun nachträglich doch noch die komplette Fehlermeldung aufgetaucht ist, sind wir ja schon einen kleinen Schritt weiter. In einem SW Shop Version 5.x sollte dieses INSERT keine Probleme bereiten. Da kann ich keinen Fehler erkennen, es sei denn die Datenbank-Tabelle sieht anders aus. Ab SW 5.x kam wohl die Spalte „timed_delivery“ hinzu, wird hier aber nicht bemängelt. Ich würde mit einem Datenbank-Tool mal die Tabelle „s_campaigns_mailings“ näher ansehen, ob dort auch wirklich die Spalten stehen, die beim INSERT aufgeführt sind. Sollte die Spalte „timed_delivery“ fehlen dann einfach mit Datentyp „DATETIME“ anlegen und den Newsletter neu versuchen.

Zum Vergleichen:

CREATE TABLE IF NOT EXISTS s_campaigns_mailings (
id int(11) NOT NULL AUTO_INCREMENT,
datum date DEFAULT NULL,
groups mediumtext COLLATE utf8_unicode_ci NOT NULL,
subject varchar(100) COLLATE utf8_unicode_ci NOT NULL,
sendermail varchar(255) COLLATE utf8_unicode_ci NOT NULL,
sendername varchar(255) COLLATE utf8_unicode_ci NOT NULL,
plaintext int(1) NOT NULL,
templateID int(11) NOT NULL DEFAULT ‚0‘,
languageID int(11) NOT NULL,
status int(11) NOT NULL DEFAULT ‚0‘,
locked datetime DEFAULT NULL,
recipients int(11) NOT NULL,
read int(11) NOT NULL DEFAULT ‚0‘,
clicked int(11) NOT NULL DEFAULT ‚0‘,
customergroup varchar(25) COLLATE utf8_unicode_ci NOT NULL,
publish int(1) unsigned NOT NULL,
timed_delivery datetime DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

 

Ich bin leider noch neu in der Shopware-Welt. Danke für deine ausführliche Antwort und deine geduld. Ich werde das heute noch prüfen und dir eine Antwort geben.

Vielen Dank!

Jo, dazu würde dann auch die Fehlermeldung einen Sinn ergeben.

https://dev.mysql.com/doc/refman/8.0/en/keywords.html#keywords-8-0-detailed-G

GROUPS” ist ab 8.0.2 ein reserviertes Wort - wusste ich auch nicht.

1 „Gefällt mir“

Vielen Dank für die Unterstützung!

Auf welche Version sollte ich SQL-Technisch downgraden? Wäre es aus eurer sicht legitim die GROUPS auch für die Insert beim Newsletter zu escapen?

@hali schrieb:

Vielen Dank für die Unterstützung!

Auf welche Version sollte ich SQL-Technisch downgraden? Wäre es aus eurer sicht legitim die GROUPS auch für die Insert beim Newsletter zu escapen? 

Ich habe hier mal ein Ticket aufgemacht: Shopware Issuetracker

Du könntest es mal Analog zu der Lösung wie im PullRequest für den Newsletter versuchen als Core Patch.