Project

General

Profile

GX-Task #46135

MySQL-Strict-Kompatibilität erforderlich

Added by Moritz Bunjes over 5 years ago.

Status:
Erledigt
Priority:
Normal
Assignee:
Category:
Change
% Done:

100%

Betroffene Versionen:
Unbestimmt

Description

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';

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 5 MB)