IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Autoriser NOT NULL


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 4
    Par défaut Autoriser NOT NULL
    On m'a livré un soft en php à installer. Il est parfaitement fonctionnel ailleurs.
    Mais chez le client non...

    Le problème vient par exemple de ce type de requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $query_newUsr = mysql_query(
    'INSERT INTO `usr` 
    (`idUsr`,	...[ETC]...,	`MonKL`,	...[ETC]...)
    VALUES 
    (NULL , 	...[ETC]...,	"",	...[ETC]...)') or die('Erreur de création');
    Structure SQL correspondante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    -- phpMyAdmin SQL Dump
     
    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
     
    CREATE TABLE IF NOT EXISTS `usr` (
      `idUsr` int(11) NOT NULL AUTO_INCREMENT,
    ...[ETC]...
      `MonKL` int(11) NOT NULL,
    ...[ETC]...
      PRIMARY KEY (`idUsr`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;
    J'ai modifier la source pour trouver l'origine de l'erreur et j'ai constaté que l'attribution de la valeur "" ne plaisait pas à MySQL... normal...

    Alors quel paramètre ont-ils modifié dans le php.ini ou my.ini ou autre pour que ça passe ? je ne trouve pas.

  2. #2
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    salut,

    le set sql_mode interdit l'utilisation des auto incrément pour iduser... donc null en insert sur lui ne marchera pas

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 4
    Par défaut
    Les messages d'erreur bloquant l'application n'était pas lié à l'auto-increment, mais bien à l'attribution d'une chaine vide dans un entier qui n'accepte pas les valeurs nulls....

    J'ai résolu le problème en supprimant le paramètre STRICT_ALL_TABLES de sql_mode du my.ini...

    cf doc Mysql :
    STRICT_ALL_TABLES:: Active le mode strict pour tous les moteurs de stockage. Les valeurs invalides sont rejetées. Plus de détails suivent. (Nouveau en MySQL 5.0.2)

    Je n'ai pas manqué d'indiquer à mon client que le presta ne respectait pas certaines bases ( respect CIF....) et qu'il devait modifier une bonne partie du code pour avoir une appli un minimum sérieuse.

Discussions similaires

  1. Ajouter la contrainte NOT NULL a une colone [Firebird 1.5]
    Par crocodingo dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/01/2004, 18h52
  2. [SQL] supprimer le "not null" à un type
    Par AnestheziE dans le forum SQL
    Réponses: 10
    Dernier message: 27/11/2003, 13h56
  3. Alter column => passer de NOT NULL à NULL
    Par JohnGT dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 17/10/2003, 11h16
  4. Réponses: 8
    Dernier message: 24/07/2003, 10h45
  5. "ALTERER" une col. NULL en NOT NULL - Int
    Par Gandalf24 dans le forum SQL
    Réponses: 2
    Dernier message: 28/12/2002, 00h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo