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

Administration MySQL Discussion :

Probleme requetes INSERT avec AUTO INCREMENT défini, et '' en premier argument


Sujet :

Administration MySQL

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2018
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Probleme requetes INSERT avec AUTO INCREMENT défini, et '' en premier argument
    Bonjour à tous,
    Je développe depuis quelques années plusieurs applications sur le Web,
    Avec l'évolution de PHP7 et MySQL des derniers mois j'ai eu des difficultés à réinstaller sur un Linux Ubuntu 16.04 la version de PHP5, car sinon cela m'obligeait à recoder toutes mes requetes SQL avec PDO::, j'ai codé "à l'ancienne" avec des requetes PHP/MySQL sans Objet,

    Ma question porte sur l'INSERT, j'ai fait toutes mes requêtes comme cela :
    INSERT INTO ma_table ('','VALEUR_1','VALEUR_2','VALEUR_3')
    Mon premier champ est un ID en AUTO_INCREMENT type INT, je lui indiquait donc '' dans ma requete pour que celle si soit automatiquement remplie et incrémentée,

    Avec la nouvelle version de mySQL, le moteur de base de données ne veut plus de mes '' mais attend un null ou NULL, ou carément que j'enlève mon '', placé en premier,
    Cela m'embête car je ne veux pas recoder tous mes appels à la base, il y en a énormément,
    En attendant j'ai l'erreur < Incorrect Integer Value : '' for column ID at Row 1 >

    Je pense qu'il y a certainement un moyen de configurer MySQL pour qu'il le reprenne comme je le souhaite, même si je sais que cela ne respecte probablement plus les standards d'aujourd'hui ...

    Après avoir longuement cherché je n'ai pas trouvé sur Internet la solution, il faut dire que l'erreur retournée peut concerner plusieurs cas de figure
    Je me tourne donc vers Développez.net en espérant que quelqu'un puisse m'aider

    D'avance, grand merci =)

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Je ne suis pas sûre de bien comprendre : le problème est au niveau de MySQL ou du script PHP ?
    Si tu exécutes directement ta requête sur ta base (par PhpMyAdmin, ou assimilé), est-ce qu'elle fonctionne ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    essai d'executer la requête
    avant
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2018
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Réponse Easyclix suite message moderateur
    Bonjour,
    Merci de votre retour,
    Aussi bien dans mon code PHP que si je teste la requete dans Phpmyadmin l'erreur retournée est une erreur SQL (comme mise dans mon premier post),
    Ce n'est pas une erreur de code PHP, mon code est OK et existe depuis plusieurs années,
    Simplement je pense que le serveur MySQL a été remanié au niveau de cette particularité
    En espérant vous éclairer
    Cordialement

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2018
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Avec SET sql_mode = '';
    Avec cela avant en effet cela fonctionne,
    Chapeau =)
    Ou puis je modifier ce paramètre pour ne pas avoir à le retaper systématiquement avant chacune de mes requêtes ?
    MERCI !!!

  6. #6
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 378
    Points : 19 055
    Points
    19 055
    Par défaut
    Salut à tous.

    Citation Envoyé par easyclix
    Mon premier champ est un ID en AUTO_INCREMENT type INT, je lui indiquait donc '' dans ma requete pour que celle si soit automatiquement remplie et incrémentée,
    Il est inutile de préciser la colonne "id" dans un insert si elle est automatiquement incrémenté.
    Idem pour les colonnes ayant une valeur par défaut.
    Idem pour les colonnes calculées.

    Citation Envoyé par Sabotage
    essai d'executer la requête
    Oui, en effet, cette solution peut résoudre le problème de easyclix.
    Sauf que la colonne "id" est auto incrémenté et qu'il n'est pas nécessaire de la préciser dans un insert.

    Citation Envoyé par easyclix
    Ce n'est pas une erreur de code PHP, mon code est OK et existe depuis plusieurs années,
    C'est une erreur MySql, et il ne faut pas oublier que MySql évolue.
    Si certaines astuces fonctionnaient jadis, il est fort probable qu'elles ne fonctionnent plus aujourd'hui.
    Le mieux est de remanier vos scrips afin de supprimer la colonne "id" qui n'a pas lieu d'être dans un insert.

    Citation Envoyé par easyclix
    Ou puis je modifier ce paramètre pour ne pas avoir à le retaper systématiquement avant chacune de mes requêtes ?
    A mettre dans my.ini, dans la section consacré au nom de votre service, soit "wampmysqld".
    Puis vous redémarrez votre le service mysql.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2018
    Messages : 4
    Points : 1
    Points
    1
    Par défaut RESOLU - Solution trouvée !
    Bonjour à tous et merci pour vos réponses,

    J'ai donc ajouté < sql-mode = '' > à la fin de mon fichier < /etc/mysql/mysql.conf.d/mysqld.cnf > (je suis sous Ubuntu avec serveur Apache)

    Et cela fonctionne à présent, o joie !

    Je sais que ce n'est pas bien comme certains membres du forum me l'ont mentionné, mais désolé je n'avais pas envie de recoder mes 1000 requêtes dans mes 10 programmes PHP !

    Passez tous une excellente journée et merci pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme requete sql avec insert
    Par affaf09 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 21/05/2015, 21h59
  2. probleme Insert Id auto-increment
    Par linuxien_62 dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 27/05/2013, 14h40
  3. INSERT avec auto-increment
    Par sly60 dans le forum Paradox
    Réponses: 1
    Dernier message: 26/07/2011, 14h49
  4. probleme avec auto incremental id
    Par riadhhwajdii dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 30/10/2009, 14h23
  5. effectuer une requete insert avec 'values' ET 'select'
    Par delaio dans le forum Bases de données
    Réponses: 4
    Dernier message: 15/08/2004, 19h05

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