Projekt

Allgemein

Profil

Aktionen

GX-Task #46135

geschlossen

MySQL-Strict-Kompatibilität erforderlich

Von Moritz Bunjes vor fast 8 Jahren hinzugefügt.

Status:
Erledigt
Priorität:
Normal
Zugewiesen an:
Moritz Bunjes
Kategorie:
Change
% erledigt:

100%

Betroffene Versionen:
Unbestimmt

Beschreibung

Es soll ab sofort MySQL-Strict-sicher programmiert werden. Grund ist, dass mit MySQL 5.7 einige Strict-Einstellungen standardmäßig(?) aktiviert sind und diese MySQL-Version jetzt bei immer mehr Hostern aktiviert wird. Um folgende sql_mode-Einstellungen geht es:
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Das hat zur Folge, dass z. B. ein leerer Zeitstempel nicht mehr 0000-00-00 00:00:00 lauten darf, sondern 1000-01-01 00:00:00. Entsprechend muss evtl. PHP-Logik angepasst werden, die aktuell für ein Leerdatum noch von 0000-00-00 00:00:00 ausgeht.
In CREATE TABLE Befehlen ist es außerdem Pflicht für jede Spalte einen DEFAULT-Wert anzugeben, sofern der Datentyp einen DEFAULT-Wert unterstützt.

Der Shop deaktiviert aktuell den Strict-Modus. Daher ist es notwendig den Strict-Modus über eine debug/debug_config.inc.php zuzulassen. In der Datei muss (mindestens) Folgendes enthalten sein:

<?php

$t_debug_config = array(
    'ENABLED_SOURCES' => array()
);

$t_debug_config['ENABLED_SOURCES'][] = 'enable_mysql_strict_mode';

Nichts anzuzeigen

Aktionen

Auch abrufbar als: Atom PDF