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 :

warning avec requete sql en php


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 217
    Points : 113
    Points
    113
    Par défaut warning avec requete sql en php
    Bonjour,

    j'ai fais un programme qui me rempli ma base de données avec un fichier csv.

    Cependant j'ai un warning avec les requetes:
    Invalid parameter number: number of bound variables does not match number of tokens
    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <?php
    $fichierCsvActivite="C3P_activite.csv";  // fichier donnees activités
     
    $separateur = ';';
     
    // Récupère une ressource sur les fichier CSV
    $fileActivite = new SplFileObject($fichierCsvActivite);
    $fileActivite->setFlags(SplFileObject::READ_CSV | SplFileObject::SKIP_EMPTY);
    $fileActivite->setCsvControl($separateur);
     
    // Pour avoir un code générique, on génère les marqueurs en fonction du nombre de champs :
    //Activite
    $tab_champsActivite = $fileActivite->current();
    $champs_insertActivite = array_fill(0,count($tab_champsActivite),'?');
    $champs_insertActivite = implode(',',$champs_insertActivite);
     
    try
    {
    	$bdd = new PDO('mysql:host=localhost;dbname=basec3p', 'root', '');
    	$ReqInsertActivite = "INSERT INTO activite VALUES($champs_insertActivite)";
    	$insertionActivite = $bdd->prepare($ReqInsertActivite); 
    	$fileActivite->next();
    	while($rowActivite = $fileActivite->current())
    	{        
    		$insertionActivite->execute($rowActivite);
    		$fileActivite->next();
    	}
    	echo "<br>table activite remplie avec succès.<br>";
     
    }
    catch(PDOException $e)
    {
    	die('Erreur : '.$e->getMessage());
    }  
     ?>
    le warning est signalé pour la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $insertionActivite->execute($rowActivite);
    Ainsi, il y'a certains lignes de mon fichier csv qui ne sont pas remplies dans ma base données.

    Merci de votre aide

  2. #2
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 864
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 864
    Points : 3 437
    Points
    3 437
    Par défaut
    Salut

    En regardant la requête finalisé (avec un print) tu devrais voir l'erreur je pense, probablement plus ou moins de champs dans la partie INSERT que dans la partie VALUES.

    A+

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 217
    Points : 113
    Points
    113
    Par défaut
    Merci pour la réponse
    je vais jeter un coup d'œil sur mon fichier csv s'il n'y a pas un point virgule de trop et je reviens

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    on sait jamais mais il me semble que ce message d'erreur t'indique que le nombre de paramètre est incorrect pour la méthode utilisée. Souvent cette erreur indique un paramètre passé a une méthode qui n'en a pas, ou un paramètre de trop

  5. #5
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 864
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 864
    Points : 3 437
    Points
    3 437
    Par défaut
    Oui gototog a raison, le pb vient probablement plus du code que de la requête SQL en elle-même, il doit manquer une virgule.

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 217
    Points : 113
    Points
    113
    Par défaut
    Merci pour vos réponse.
    C'était en fait ça , il y'avais des point virgule de trop dans mon fichier csv

    Merci encor

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

Discussions similaires

  1. [MySQL] petit prob avec un requete sql en PHP
    Par Triste dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 21/04/2010, 09h52
  2. Pb avec requete SQL
    Par Naud dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 06/07/2005, 19h13
  3. Pb avec requetes SQL
    Par Furtif_00 dans le forum Bases de données
    Réponses: 15
    Dernier message: 22/03/2004, 20h14
  4. probleme avec requete sql aime pas les strings
    Par lil_jam63 dans le forum Bases de données
    Réponses: 3
    Dernier message: 24/02/2004, 14h45

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