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

 MySQL Discussion :

requête qui ne marche pas


Sujet :

MySQL

  1. #1
    Membre éclairé
    Avatar de ProgVal
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 636
    Points : 764
    Points
    764
    Par défaut requête qui ne marche pas
    Bonjour,

    J'ai le code suivant dans ma page PHP:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("INSERT INTO membres(id, registerdate, pseudo, password, email, lastip, lastconnect) VALUES('', $registerdate, $pseudo, $password, $email, $lastip, $lastconnect)");
    Dans le cas actuel, ceci revient à envoyer à écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("INSERT INTO membres(id, registerdate, pseudo, password, email, lastip, lastconnect) VALUES('', 1215517042, ProgVal, hello, progval@gmail.com, 88.175.48.15, 1215517042);
    Voici un aperçu de ma table:

    Or, j'ai beau exécuter ce code, ma table reste vide.

    Que dois-je faire?

    Merci d'avance,
    ProgVal

  2. #2
    Expert confirmé

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Points : 4 324
    Points
    4 324
    Par défaut
    Bonjour,

    Les chaines de caractère doivent êtres encadré de '
    je pense que ceci devrait marcher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mysql_query("INSERT INTO membres(id, registerdate, pseudo, password, email, lastip, lastconnect) VALUES('', $registerdate, '$pseudo', '$password', '$email', $lastip, $lastconnect)");
    Les champs pseudo, password et email sont de type text, j'aurais conseillé plutôt des varchar ...
    Or, j'ai beau exécuter ce code, ma table reste vide.
    Quand c'est comme ca tu as deux choix.
    1/ mysql_query($requete) od die (mysql_error());
    2/ echo $requete, puis copier/coller dans la console MySQL pour obtenir des erreurs
    http://alaindefrance.wordpress.com
    Certifications : SCJP6 - SCWCD5 - SCBCD5 - SCMAD1
    SDE at BitTitan

  3. #3
    Membre éclairé
    Avatar de ProgVal
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 636
    Points : 764
    Points
    764
    Par défaut
    Merci pour ta réponse rapide!

    J'ai rajouté les apostrophes, ça ne change rien.

    J'ai donc envoyé ce code à partir de PHPMyAdmin:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO membres(id, registerdate, pseudo, password, email, lastip, lastconnect) VALUES('', 1215517868, 'ProgVal', 'hello', 'progval@gmail.com', 88.175.48.15, 1215517868)
    Et j'obtiens ceci:
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.48.15, 1215517868)' at line 1
    Merci d'avance,
    ProgVal

    EDIT: Quelle est la différence entre TEXT et VARCHAR?

  4. #4
    Expert confirmé

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Points : 4 324
    Points
    4 324
    Par défaut
    C'est normal, ton ip n'est pas un entier, tu peut par exemple stocker tout cela sous forme de chaine de caractère.
    Pour corriger il faut changer le type du champ last_ip en varcahr(15) comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE membres CHANGE last_ip last_ip VARCHAR(15) NULL;
    Il faudra ensuite rajouter les ' autour de ton ip dans ta requête.

    Pour la différence entre TEXT et VARCHAR, disons que physiquement le SGBD stocke directement les valeurs dans un champ VARCHAR (prévu pour stocker de petite chaines de caractères, alors que TEXT est stocké ailleurs, et le champ ne fait que référence a une donnée.

    Ceci est transparent pour toi mais il est avantageux d'utiliser des varchar pour de petites données, et des textes pour des textes entiers.
    http://alaindefrance.wordpress.com
    Certifications : SCJP6 - SCWCD5 - SCBCD5 - SCMAD1
    SDE at BitTitan

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    Tu essaies d'enregistrer une adresse ip dans une colonne de type 'entier'. Ou bien tu la mets en 'caractère', ou bien tu transformes l'adresse ip en entier avec la fonction 'ip2long()'.

  6. #6
    Membre éclairé
    Avatar de ProgVal
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 636
    Points : 764
    Points
    764
    Par défaut
    Alors, en fait, j'ai récupéré un code à moi qui ressemblait un peu à ce que je voulait, je l'ai édité, j'ai passé tous les champs en TEXT (sauf id et les dates), et ça a marché.
    Comme quoi...

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

Discussions similaires

  1. [MySQL] Une requête qui ne marche pas sur tous les enregistrements
    Par Marc22 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 21/04/2010, 13h20
  2. [AC-2003] Requête qui ne marche pas quand je l'utilise en VBA ?
    Par [ZiP] dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 31/03/2010, 10h28
  3. Requête qui ne marche pas sur une table Joomla.
    Par tintin72 dans le forum Requêtes
    Réponses: 2
    Dernier message: 26/02/2010, 17h51
  4. requête qui ne marche pas (HTTP 500)
    Par ChTiRiBi dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 07/08/2008, 09h29
  5. [php-mysql] requête qui ne marche pas....
    Par sanosuke85 dans le forum Requêtes
    Réponses: 1
    Dernier message: 09/01/2006, 17h18

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