Insertion de données

Résolu
isa.dama Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   -  
isa.dama Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je voulais insérerer le contenu d'un fichier texte dans ma base de données.
Le problème est que je recois un message d'erreur àdans la partie de mon code.
L'erreur et la suivante:

( ! ) Warning: odbc_do(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe dans l'instruction INSERT INTO., SQL state 37000 in SQLExecDirect in C:\wamp\www\modules-passerelle\traitement_passerelle1.php on line 36

Lorsque j'affiche le résultat de ma requete, celle ci ne présente aucune anomalie. Ci dessous le resultat de ma requete (plusieurs lignes de ce genre).

(INSERT INTO passerelle (Etabl,Matricule,NumAxe,Rubr,CodeAnalytique,ExprP,ExprD,P,PSalarie,PCharges,PGlobal,D,DSalarie,DCharges,R,RSalarie,RCharges,RGain,RPerte,Lib,Editer) VALUES('.1', '0004', '0', '1111', 'FTE-17-1011', '6', ' ', '6.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '6.0', '0.0', ' 0.0', '0.0', '0.0', ' ','0 ')

voici la partie de mon code (c'est la dernière ligne qui est le problème, ligne36).
Aider moi car ça fait maintenant 4 jours que je galère sans solution

<
gras>$fichier = fopen("C:\Thalia\Paye82\TEMP\FORAGESTECHNIC\NbJourPaye.txt", "r");

//tant qu'on est pas a la fin du fichier :
while (!feof($fichier))
{
// On recupere toute la ligne
$uneLigne = fgets($fichier, 1024);
//On met dans un tableau les differentes valeurs trouvés (ici séparées par un ';')
$tableauValeurs = explode(';', $uneLigne);

$conn_paye=odbc_connect('ODBC_PayeFORAGESTECHNIC','','') or die ("Erreur de connexion à la base paye ");
// On crée la requete pour inserer les donner (ici il y a 12 champs donc de [0] a [11])
$sqlp="(INSERT INTO passerelle (Etabl,Matricule,NumAxe,Rubr,CodeAnalytique,ExprP,ExprD,P,PSalarie,PCharges,PGlobal,D,DSalarie,DCharges,R,RSalarie,RCharges,RGain,RPerte,Lib,Editer) VALUES('.$tableauValeurs[0]', '$tableauValeurs[1]', '$tableauValeurs[2]', '$tableauValeurs[3]', '$tableauValeurs[4]', '$tableauValeurs[5]', '$tableauValeurs[6]', '$tableauValeurs[7]', '$tableauValeurs[8]', '$tableauValeurs[9]', '$tableauValeurs[10]', '$tableauValeurs[11]', '$tableauValeurs[12]', '$tableauValeurs[13]', '$tableauValeurs[14]', '$tableauValeurs[15]', '$tableauValeurs[16]', '$tableauValeurs[17]', '$tableauValeurs[18]', '$tableauValeurs[19]','$tableauValeurs[20]')";

echo( "<center>".$sqlp."<br>" ) ;

$result =odbc_do($conn_paye, $sqlp);
</gras>




A voir également:

2 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Pas d'erreur dis tu ?
Moi j'ai déjà l'impression que tu as une parenthèse ouvrant en trop au début de ta requête....

0
isa.dama Messages postés 30 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir
oui effectivement vous avez raison
en faisant cette correction, un autre message s'affiche toujours sur la même ligne 36
Voici le message mais il n'ya a pas plus de détail.

( ! ) Warning: odbc_do(): in C:\wamp\www\modules-passerelle\traitement_passerelle1.php on line 36



voici la ligne 36 qui permet d'exécuter la requête d'insertion

$result =odbc_do($conn_paye, $sqlp);
0
Pinzou76 Messages postés 614 Date d'inscription   Statut Membre Dernière intervention   192
 
Bonjour,
Toujours dans la requête INSERT, la première valeur ajoutée est
.$tableauValeurs[0]

Avec un point devant le $, alors qu'il n'y en a pas devant toutes les autres valeurs.
Serait-ce une source d'erreur ?
0
isa.dama Messages postés 30 Date d'inscription   Statut Membre Dernière intervention  
 
merci pour cette remarque mais après cette correction j'ai toujours le même message d'erreur.
( ! ) Warning: odbc_do(): in C:\wamp\www\modules-passerelle\traitement_passerelle1.php on line 36 


Le problème ne viendrai pas de l'utilisation de odbc_do?
J'ai éssayé avec odbc_exec mais même message d'erreur
0
isa.dama Messages postés 30 Date d'inscription   Statut Membre Dernière intervention  
 
lorsque j'affiche ma requete elle me donne ça

(INSERT INTO passerelle VALUES('1','0004','0','1111','FTE-17-1011','6',' ','6.0','0.0','0.0','0.0','0.0','0.0','0.0','6.0','0.0',' 0.0','0.0','0.0',' ','0 '))
(INSERT INTO passerelle VALUES('1','0004','0','1111','FTE-18-1003','1',' ','1.0','0.0','0.0','0.0','0.0','0.0','0.0','1.0','0.0',' 0.0','0.0','0.0',' ','0 '))
(INSERT INTO passerelle VALUES('1','0002','0','1111','FTE-18-1005','5',' ','5.0','0.0','0.0','0.0','0.0','0.0','0.0','5.0','0.0',' 0.0','0.0','0.0',' ','0 '))
(INSERT INTO passerelle VALUES('1','0003','0','1111','FTE-18-1005','7',' ','7.0','0.0','0.0','0.0','0.0','0.0','0.0','7.0','0.0',' 0.0','0.0','0.0',' ','0 '))
(INSERT INTO passerelle VALUES('1','0004','0','1111','FTE-18-1005','6',' ','6.0','0.0','0.0','0.0','0.0','0.0','0.0','6.0','0.0',' 0.0','0.0','0.0',' ','0 '))
(INSERT INTO passerelle VALUES('1','0003','0','1111','FTE-18-1007','7',' ','7.0','0.0','0.0','0.0','0.0','0.0','0.0','7.0','0.0',' 0.0','0.0','0.0',' ','0 '))
(INSERT INTO passerelle VALUES('1','0002','0','1111','FTE-18-1008','13',' ','13.0','0.0','0.0','0.0','0.0','0.0','0.0','13.0','0.0',' 0.0','0.0','0.0',' ','0 '))
(INSERT INTO passerelle VALUES('1','0003','0','1111','FTE-18-1008','13',' ','13.0','0.0','0.0','0.0','0.0','0.0','0.0','13.0','0.0',' 0.0','0.0','0.0',' ','0 '))
(INSERT INTO passerelle VALUES('1','0004','0','1111','FTE-18-1008','12',' ','12.0','0.0','0.0','0.0','0.0','0.0','0.0','12.0','0.0',' 0.0','0.0','0.0',' ','0 '))
(INSERT INTO passerelle VALUES('1','0004','0','1111','FTE-18-1010','1',' ','1.0','0.0','0.0','0.0','0.0','0.0','0.0','1.0','0.0',' 0.0','0.0','0.0',' ','0 '))
(INSERT INTO passerelle VALUES('1','0002','0','1111','FTE-18-1018','7',' ','7.0','0.0','0.0','0.0','0.0','0.0','0.0','7.0','0.0',' 0.0','0.0','0.0',' ','0'))



le problème c'est l'insertion car si j'éssais de le faire manuellement dans access cela fonctionne. Je pense que le problème vient de la fonction d'insertion.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Au niveau de la syntaxe d'une requête INSERT ... il est préférable d'y indiquer les champs pour lesquels ont veut faire l'insertion
INSERT INTO <NomTable> (<Champ>, <Champ2>…..) VALUES (<Valeur1>, <Valeur2>….)
0
isa.dama Messages postés 30 Date d'inscription   Statut Membre Dernière intervention  
 
Mon probl-me est réglé.
En fait il ny avait une ligne vide à lafin du fichier que j'essayais d'importer.
Cela posait problème.
En plus le symbole du decimal devait être une virgule au lieu d'un point.

Encore merci à tous
0