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

Langage PHP Discussion :

Requet sql qui ne fonctionne pas


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 18
    Points : 9
    Points
    9
    Par défaut Requet sql qui ne fonctionne pas
    Voila, je fais un livre d'or qui tourne sous wamp. J'ai une page de formulaire qui me recupere les informations puis les traite avant de les inserere en base de donner.
    le traitement fonctionne bien mais arriver au sql, la j'ai un plantage et je ne parviens pas a voir de quoi il s'agit.

    voila la code que j'avais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "INSERT INTO livre VALUES ('', '0', '0', '".$visible."', '".$nom."', '".$prenom."', '".$rue."', '".$codepostal."', '".$ville."', '".$telephone."', '".$mail."', '".$iptext."', '".$message."', '', '', '".$date_msg."', '".$acc_ch."', '".$acc_val."', '".$ani_ch."', '".$ani_val."', '".$cdt_ch."', '".$cdt_val."')";


    puis j'ai demander a wamp de me faire le code d'insretion mysql qu'il desire ce qui m'a donner cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "INSERT INTO 'a6201429_anim'.'livre' ('id', 'vue', 'rang', 'visible', 'nom', 'prenom', 'rue', 'code', 'ville', 'tel', 'mail', 'ip', 'mes', 'avis', 'mes_or', 'date', 'acc_ch', 'acc_val', 'ani_ch', 'ani_val', 'cdt_ch', 'cdt_val') VALUES (NULL, \'0\', \'0\', \'".$visible."\', \'".$nom."\', \'".$prenom."\', \'".$rue."\', \'".$codepostal."\', \'".$ville."\', \'".$telephone."\', \'".$mail."\', \'".$iptext."\', \'".$message."\', \'\', \'\', \'".$date_msg."\', \'".$acc_ch."\', \'".$acc_val."\', \'".$ani_ch."\', \'".$ani_val."\', \'".$cdt_ch."\', \'".$cdt_val."\');";


    mais aucun des deux ne marche.

    avez vous une idée de pourquoi cela ne fonctinne pas?

    (avant j'utilisais un code en get pour les erreur mais le textarea ne gardais pas les retour a la ligne d'ou la bidouille avec le formulaire invisible dans les if pour un retour au traitement.
    Avec les info reecrit dans l'adresse (get) cela fonctionnais mais depuis que j'ai placer les champ de formulaire, l'insertion ne fonctionne plus.)

    et pour ceux qui veulent le code complet (336 lignes) le voici:
    (a telecharger)
    http://www.megaupload.com/?d=7UOPGEOO

    merci de votre aide

  2. #2
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Quelle est l'erreur donnée par le mysql_error() ?
    Sinon evite de mettre des quotes autour des valeurs numériques si tes champs sont bien numériques en base

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    1) Quand je rentre des donner arbitraire, voila l'erreur:

    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 '\'0\', \'0\', \'1\', \'azerty\', \'ytreza\', \'azerty\', \'ytrez\', \'azerty\', ' at line 1
    ou le 1 correspond à $visible

    2) Je veux bien ne pas mettre de quote mais c'est bien autour des deux 0 au tous debut n'est ce pas?

    car alors, voila l'erreur qui aparait

    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 '\'1\', \'azerty\', \'ytreza\', \'azerty\', \'ytrez\', \'azerty\', \'ytreza\', \'' at line 1
    pour le sql:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "INSERT INTO `a6201429_anim`.`livre` (`id`, `vue`, `rang`, `visible`, `nom`, `prenom`, `rue`, `code`, `ville`, `tel`, `mail`, `ip`, `mes`, `avis`, `mes_or`, `date`, `acc_ch`, `acc_val`, `ani_ch`, `ani_val`, `cdt_ch`, `cdt_val`) VALUES (NULL, 0, 0, \'".$visible."\', \'".$nom."\', \'".$prenom."\', \'".$rue."\', \'".$codepostal."\', \'".$ville."\', \'".$telephone."\', \'".$mail."\', \'".$iptext."\', \'".$message."\', \'\', \'\', \'".$date_msg."\', \'".$acc_ch."\', \'".$acc_val."\', \'".$ani_ch."\', \'".$ani_val."\', \'".$cdt_ch."\', \'".$cdt_val."\');";
    3) Quand je retire tous les \':

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "INSERT INTO `a6201429_anim`.`livre` (`id`, `vue`, `rang`, `visible`, `nom`, `prenom`, `rue`, `code`, `ville`, `tel`, `mail`, `ip`, `mes`, `avis`, `mes_or`, `date`, `acc_ch`, `acc_val`, `ani_ch`, `ani_val`, `cdt_ch`, `cdt_val`) VALUES (NULL, 0, 0, ".$visible.", ".$nom.", ".$prenom.", ".$rue.", ".$codepostal.", ".$ville.", ".$telephone.", ".$mail.", ".$iptext.", ".$message.", , , ".$date_msg.", ".$acc_ch.", ".$acc_val.", ".$ani_ch.", ".$ani_val.", ".$cdt_ch.", ".$cdt_val.");";
    cela me donne comme erreur :

    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 '@ytreza.azerty, Message retranscrits depuis le Livre d'or manuscrit du magasin, ' at line 1
    ce qui correspond a $mail et $iptext

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Octobre 2009
    Messages : 5
    Points : 8
    Points
    8
    Par défaut
    Salut,

    Le champ visible est de quel type ?
    Si c'est un nombre ou un booléen tu ne devrait pas mettre de ' autour de la variable $visible.

  5. #5
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    le visible est une check box.
    la valeur est ensute determiner par:

    if(empty($_POST['visible'])){
    $visible = 1;}
    else{
    $visible = 0;}

  6. #6
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    trouver, je ne sais pas pourquoi mais les \' empechait l'injection de fonctionner. une fois rajouter partout cela fonctionne.

    Merci de votre aide.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/02/2009, 14h09
  2. [MySQL] requete sql qui ne fonctionne pas
    Par Ladslman dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 16/01/2009, 14h09
  3. [Access] requete sql qui ne fonctionne pas
    Par pobrouwers dans le forum Langage SQL
    Réponses: 4
    Dernier message: 15/03/2007, 12h33
  4. requete sql qui ne fonctionne pas
    Par pobrouwers dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 15/03/2007, 09h37
  5. [hibernate]requete SQL qui ne passe pas
    Par Gromitou dans le forum Hibernate
    Réponses: 8
    Dernier message: 09/06/2006, 12h18

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