[SPIP Zone] Mysql 5.7 et dates à 0

Hello,

Sur Mysql 5.7, la config par défaut (sql_mode) inclut STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ce qui interdit d'insérer des dates du type "0000-00-00 00:00:00", avec une erreur "Incorrect date value".

A l'usage depuis l'espace privé, ça ne semble pas poser de problème.

Mais est ce que ça a posé des soucis à certains d'entre vous ?

--
nicod_

nicod_ a écrit le 03/06/2019 à 12:24 :

Hello,

Sur Mysql 5.7, la config par défaut (sql_mode) inclut STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ce qui interdit d'insérer des dates du type "0000-00-00 00:00:00", avec une erreur "Incorrect date value".

A l'usage depuis l'espace privé, ça ne semble pas poser de problème.

Ça ne pose pas de problème en utilisant l'API SQL de SPIP car l'API dit à MySQL de se comporter différemment.

Mais est ce que ça a posé des soucis à certains d'entre vous ?

Oui : impossible de faire certaines opérations depuis PHPMyAdmin.

--
RealET

Le 03/06/2019 à 12:33, RealET a écrit :

Mais est ce que ça a posé des soucis à certains d'entre vous ?

Ça m'arrive souvent pour des tables persos, mais je me souviens pas pour SPIP.

Oui : impossible de faire certaines opérations depuis PHPMyAdmin.

Pour effectuer une requête depuis phpMyAdmin il faut préfixer par la commande
SET MYSQL_MODE=''

Du coup souvent
- je fais une commande par l'interface graphique phpmysadmin,
- phpmyadmin dit "c'est pas possible car les dates nulles sont pas autorisées"
- dans sa grande bonté, le message d'erreur indique aussi la requête bloquée
- je copie la requête
- j'ouvre l'onglet 'SQL' et je copie colle la requête, et la préfixe par
SET MYSQL_MODE='';
- j'exécute

Ça c'est quand on peut pas changer le SQL_MODE par défaut du serveur mysql.

JL

Le 03/06/2019 à 13:04, JLuc a écrit :

Le 03/06/2019 à 12:33, RealET a écrit :

Mais est ce que ça a posé des soucis à certains d'entre vous ?

Ça m'arrive souvent pour des tables persos, mais je me souviens pas pour SPIP.

Oui : impossible de faire certaines opérations depuis PHPMyAdmin.

Pour effectuer une requête depuis phpMyAdmin il faut préfixer par la commande
SET MYSQL_MODE=''

Du coup souvent
- je fais une commande par l'interface graphique phpmysadmin,
- phpmyadmin dit "c'est pas possible car les dates nulles sont pas autorisées"
- dans sa grande bonté, le message d'erreur indique aussi la requête bloquée
- je copie la requête
- j'ouvre l'onglet 'SQL' et je copie colle la requête, et la préfixe par
SET MYSQL_MODE='';
- j'exécute

Ça c'est quand on peut pas changer le SQL_MODE par défaut du serveur mysql.

Même chose pour moi oui.

En fait, je me demandais si je modifiais la config sql_mode du serveur ou pas.

--
nicod_

Le 03/06/2019 à 12:33, RealET a écrit :

A l'usage depuis l'espace privé, ça ne semble pas poser de problème.

Ça ne pose pas de problème en utilisant l'API SQL de SPIP car l'API dit à MySQL de se comporter différemment.

Se comporte différemment ? C'est à dire ?
Tu peux pointer le code en question si tu l'as en tête ?

--
nicod_

nicod_ a écrit le 03/06/2019 à 15:03 :

Le 03/06/2019 à 12:33, RealET a écrit :

A l'usage depuis l'espace privé, ça ne semble pas poser de problème.

Ça ne pose pas de problème en utilisant l'API SQL de SPIP car l'API dit à MySQL de se comporter différemment.

Se comporte différemment ? C'est à dire ?
Tu peux pointer le code en question si tu l'as en tête ?

retrouvé : c'est dans ecrire/req/mysql.php
Il y a des
SET sql_mode=''

:wink:

--
RealET

Le 03/06/2019 à 15:44, RealET a écrit :

nicod_ a écrit le 03/06/2019 à 15:03 :

Le 03/06/2019 à 12:33, RealET a écrit :

A l'usage depuis l'espace privé, ça ne semble pas poser de problème.

Ça ne pose pas de problème en utilisant l'API SQL de SPIP car l'API dit à MySQL de se comporter différemment.

Se comporte différemment ? C'est à dire ?
Tu peux pointer le code en question si tu l'as en tête ?

retrouvé : c'est dans ecrire/req/mysql.php
Il y a des
SET sql_mode=''

:wink:

Hahaha, quelle fourberie, je comprends mieux :slight_smile:

N'empêche qu'on est un peu pas très propres là dessus, avec nos dates à 0, et nos requêtes pas testées...
Mais bon, canal historique.

--
nicod_