Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2319 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [RESOLU] syntaxe à utiliser pour une requête composé de variables

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU] syntaxe à utiliser pour une requête composé de variables

n°2214824
Djeweler
Posté le 02-01-2014 à 17:42:25  profilanswer
 

Bonjour, et bonne année 2014.
 
voila je sèche depuis un bon moment sur une requête Mysql faite par l’intermédiaire de php.
 

Code :
  1. $sql_itt = "INSERT INTO $table
  2.     (
  3.     `champ1`, `champ2`, `champ3`, `chammp4`, `champ5`, `champ6`
  4.     )
  5.     VALUES
  6.     (
  7.      \"$data[0]\" ,\" $data[1]\"
  8.      \"$data[2]\" ,\" $data[3]\"
  9.      \"$data[4]\" ,\" $data[5]\"
  10.     )";


 
vous aurez remarquer que ce ne sont que des variables en valeurs
ces var sont issues d'un fgetcsv.  
 
j'ai un

Code :
  1. echo ("$sql_itt" );


qui me sort mes données correctement cependant j'ai un message d'erreur
 Column count doesn't match value count at row 1
mais ce message est destiné a une non correspondance entre le nombre de champs et de valeurs.
 
ensuite j'ai un beau
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 ... données de ce que je souhaite insérer  

or si je modifie la syntaxe plus rien n'est bon ...
 
bref, c'est le caca .
 
vous avez des idées pour que me requête fonctionne ?


Message édité par Djeweler le 08-01-2014 à 16:49:39
mood
Publicité
Posté le 02-01-2014 à 17:42:25  profilanswer
 

n°2214829
Pablo Escr​obarbe
Retour d'exil
Posté le 02-01-2014 à 18:00:05  profilanswer
 

les virgules c'est important les virgules. Je préfère faire un truc du genre, mais attention pense d'abord à bien protéger ce que tu insères vu que sinon c'est la porte ouverte à toute les failles.

 
Code :
  1. $sql_itt = "INSERT INTO $table
  2.         (
  3.         `champ1`, `champ2`, `champ3`, `chammp4`, `champ5`, `champ6`
  4.         )
  5.         VALUES
  6.         (".$data[0].", ".$data[1]." , ".$data[2]." , ". $data[3].", ".$data[4]." , ".$data[5]." )";


Message édité par Pablo Escrobarbe le 02-01-2014 à 18:00:42
n°2214865
Djeweler
Posté le 03-01-2014 à 09:40:29  profilanswer
 

en effet j'avais pas fait gaffe que j'avais mis une virgule sur deux, c'est due au changement de syntaxe répétitif.
 
par contre avec ta syntaxe petitpois2 j'ai en retour un massage d'erreur  
 
Unknown column 'CODE' in 'field list'   code étant ma première colonne .
 
puis  
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 ' --> puis les données de la colonne 5

n°2214884
Pablo Escr​obarbe
Retour d'exil
Posté le 03-01-2014 à 14:46:17  profilanswer
 

Faut que tu rajoutes des ' en plus

Code :
  1. VALUES
  2.         ('".$data[0]."',"

n°2215314
Djeweler
Posté le 08-01-2014 à 10:31:08  profilanswer
 

jai tester avec  

Code :
  1. VALUES
  2. ( '".$data[0]."', '".$data[1]."'...)"


 
mais ça me renvoi en message d'erreur
Incorrect integer value: 'CODE' for column 'code' at row 1
 
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 'mes données
 
Ce qui est étrange c'est qu'au final ça remplis ma base mais pas correctement.
par exemple les trois premières lignes ne sont pas introduit dans la table, puis cela recommence plus loin dans le fichier des liges sont zappé . je comprend pas


Message édité par Djeweler le 08-01-2014 à 10:33:59
n°2215320
Pablo Escr​obarbe
Retour d'exil
Posté le 08-01-2014 à 11:03:58  profilanswer
 

Tu as suivis la casse pour tes noms de colonnes ? Là ça vient de toi cette erreur, je peux pas t'aider si tu me mets pas ta requête.


Message édité par Pablo Escrobarbe le 08-01-2014 à 11:04:20
n°2215324
Djeweler
Posté le 08-01-2014 à 11:26:51  profilanswer
 

ma requête sql est la suivante  
 

Code :
  1. $sql_itt = " INSERT IGNORE INTO $table ($db)
  2.    (
  3.     `code`,`langue`,`cycle`,`ligne`,`commentaire`,`tri`
  4.    )
  5.     VALUES
  6.    (
  7.    '".$data[0]."','".$data[1]."','".$data[2]."','".$data[3]."','".$data[4]."','".$data[5]."'
  8.    )";


 
sinon je comprend pas cette histoire de casse. tu parle au niveau de la table ou du fichier que je souhaite importé ?
 


Message édité par Djeweler le 08-01-2014 à 11:38:57
n°2215368
Pablo Escr​obarbe
Retour d'exil
Posté le 08-01-2014 à 16:31:56  profilanswer
 

au niveau des noms des champs

n°2215370
Pablo Escr​obarbe
Retour d'exil
Posté le 08-01-2014 à 16:36:02  profilanswer
 

fait un

Code :
  1. echo $sql_itt;


 
Mais en relisant l'erreur, il semblerait que code attend un entier et que tu lui passe une valeur qui n'en est pas.

n°2215375
Djeweler
Posté le 08-01-2014 à 16:45:41  profilanswer
 

c'est bon j'ai réussis à m'en sortir  
 
comme ma première colonne a une structure en int du coup j'ai dégager les double quottes sur data 0 comme ceci

Code :
  1. VALUES
  2.    (
  3.     '.$data[0].','".$data[1]."','".$data[2]."','".$data[3]."','" . mysql_real_escape_string($data[4]) . "','".$data[5]."'
  4.    )";


 
et pluis j'avais une erreur syntaxe tralala  
 
en fait ça venait de mon fichier les apostrophes étaient considéré comme un nouveau champs du coup j'ai protéger la colonne ou il y a des  apostrophes avec mysql_real_escape_string()
 
et tout est nickel  
 
en tout cas merci Petitpois2


Message édité par Djeweler le 08-01-2014 à 16:49:10

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [RESOLU] syntaxe à utiliser pour une requête composé de variables

 

Sujets relatifs
Mysql Requête pour supprimer doublons spéciauxRequête MYSQL avec Where un peu complexe
requete mysql ou comparaison de tableaux php ?[débutant] Récupérer un vecteur avec une seule requête.
[BO DESKI] Utiliser réponse utilisateur dans une clause OùResponsive design - utiliser Bootstrap ?
aide requête sql updateen fonction champ autre tableProblème Syntaxe Python
[Vba] Utiliser le nom de la feuille dans le nom de celulleConcaténation foireuse de 2 variables sous bash
Plus de sujets relatifs à : [RESOLU] syntaxe à utiliser pour une requête composé de variables


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR