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

  FORUM HardWare.fr
  Programmation
  PHP

  Pb SQL / Php

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Pb SQL / Php

n°142124
Thocan
La loi du silence
Posté le 22-05-2002 à 01:55:26  profilanswer
 

Salut,
 
J'ai des pages Php qui font appel à des requêtes SQL. Notamment des INSERT.
Dans une de ces INSERT, un message d'erreur me retourne :
"Champ 'thocan' inconnu dans field list"
où 'thocan' doit s'insérer dans le premier champ de ma table (un champ d'ID)
 
Bref, je pige pas vraiment d'où vient le pb.
Alors si quelqu'un peut m'aider...  :)  
 
Merci

mood
Publicité
Posté le 22-05-2002 à 01:55:26  profilanswer
 

n°142146
Thocan
La loi du silence
Posté le 22-05-2002 à 08:58:41  profilanswer
 

En fait, j'ai une table "8finale1" avec les champs :
user,Match1,Match2...,date,Pays01,Pays02...
 
Ma requête prend donc la forme :
$sql1 = "INSERT INTO 8finale1(user,Match01,Match02,Match03,Match04,Matc
h05,Match06,Match07,Match08,date,Pays01,Pays02,Pay
s03,Pays04,Pays05,Pays06,Pays07,Pays08) VALUES($login,$T2_M01_1,$T2_M02_1,$T2_M03_1,$T2_M0
4_1,$T2_M05_1,$T2_M06_1,$T2_M07_1,$T2_M08_1,NOW(),
$T2_P1_1,$T2_P2_1,$T2_P3_1,$T2_P4_1,$T2_P5_1,$T2_P
6_1,$T2_P7_1,$T2_P8_1)";
mysql_query($sql1) or die('Erreur SQL !'.$sql1.'<br>'.mysql_error());
 
thocan est donc théoriquement inséré dans le champ user (valeur de $login).

n°142148
Mara's dad
Yes I can !
Posté le 22-05-2002 à 09:04:09  profilanswer
 

Erreur SUPER CLASSIQUE !
 
Les champs de type caractère DOIVENT être mis entre guillemets !
 
$sql1 = "INSERT INTO 8finale1(user,Match01,Match02,Match03,Match04,Matc
 
h05,Match06,Match07,Match08,date,Pays01,Pays02,Pay
 
s03,Pays04,Pays05,Pays06,Pays07,Pays08)
VALUES('$login '  
 
,$T2_M01_1,$T2_M02_1,$T2_M03_1,$T2_M04_1,$T2_M05_1
,
$T2_M06_1,$T2_M07_1,$T2_M08_1,NOW(),$T2_P1_1,$T2_P
2_1,
$T2_P3_1,$T2_P4_1,$T2_P5_1,$T2_P6_1,$T2_P7_1,$T2_P
8_1)";  
 
Exemple pour le login. A vérifier que d'autres champs ne sont pas dans le même cas  :D

 

[jfdsdjhfuetppo]--Message édité par Mara's dad le 22-05-2002 à 09:06:27--[/jfdsdjhfuetppo]


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°142158
Thocan
La loi du silence
Posté le 22-05-2002 à 09:19:13  profilanswer
 

Merde... Je te confirme ça d'ici une heure...
 
Merci!  :sol:

n°142322
Thocan
La loi du silence
Posté le 22-05-2002 à 12:16:04  profilanswer
 

Yes, c cool.. Merci

n°142323
mrbebert
Posté le 22-05-2002 à 12:22:57  profilanswer
 

C'est une bonne idée aussi de protéger les chaines de caractères par la fonction addslashes. Au cas où il y aurait un ' dans la chaîne à insérer.

n°142350
Sh@rdar
Ex-PhPéteur
Posté le 22-05-2002 à 12:55:12  profilanswer
 

mrbebert a écrit a écrit :

C'est une bonne idée aussi de protéger les chaines de caractères par la fonction addslashes. Au cas où il y aurait un ' dans la chaîne à insérer.  




 
pas besoin ça se fait automatiquement.


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°142426
mrbebert
Posté le 22-05-2002 à 14:13:26  profilanswer
 

Sh@rdar a écrit a écrit :

 
 
pas besoin ça se fait automatiquement.  



:ouch:  
 
Essaie pour voir.
$txt = "bla'bla";
$req = "INSERT into table(champ) VALUES('$txt';);
Et dis moi si l'insertion fonctionne correctement.

n°142528
Sh@rdar
Ex-PhPéteur
Posté le 22-05-2002 à 15:32:28  profilanswer
 

comme ça forcément que ça fonctionne pas mais quand le texte est saisi via un formulaire oui ça marche.
 
ton exemple est juste mais je vois pas l'intêret d'insérer des constantes dans une base de données...

 

[jfdsdjhfuetppo]--Message édité par Sh@rdar le 22-05-2002 à 15:33:24--[/jfdsdjhfuetppo]


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°142607
mrbebert
Posté le 22-05-2002 à 17:10:23  profilanswer
 

Sh@rdar a écrit a écrit :

comme ça forcément que ça fonctionne pas mais quand le texte est saisi via un formulaire oui ça marche.
 
ton exemple est juste mais je vois pas l'intêret d'insérer des constantes dans une base de données...  



Justement non. Si ce sont des constantes, tu sais ce qu'il y a dedans. Mais si c'est un champ texte saisi par l'utilisateur, rien ne l'empêche de mettre des caractères bizarres. Qui feront planter ta requête.

mood
Publicité
Posté le 22-05-2002 à 17:10:23  profilanswer
 

n°142653
Sh@rdar
Ex-PhPéteur
Posté le 22-05-2002 à 18:06:33  profilanswer
 

je persiste et signe :
 
vérifies avec ça :
 
<?
echo $HTTP_POST_VARS["text"];
?>
<form method="post" action="<? echo $PHP_SELF ?>">
<input type="text" name="text" size="20">
<input type="submit" value="OK">
</form>
 
les quotes sont échappées automatiquement !
 
bien sur faudra traiter la chaine lors de l'affichage ultèrieur pour éviter le </body> etc... mais  y a pas besoin lors de la saisie / insertion dans la base.


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°142664
ethernal
Chercheur de vérité...
Posté le 22-05-2002 à 18:23:59  profilanswer
 

Sh@rdar a écrit a écrit :

je persiste et signe :




vous battez pas vous acez tout les deux raisons, encore une fois cela dépend de la config php.ini (magic_quotes_gpc et magic_quotes_runtime)


---------------
...oups kernel error...

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

  Pb SQL / Php

 

Sujets relatifs
Buy en SqL c koi....???[URG][PHP MYSQL] Dans un champ VARCHAR pourquoi les espaces ne sont pas la
[PERL PHP] ouverture d'une séssion SSHPHP & équation de récurrence
[PHP] différences avec fopen sur deux systemes différents.[PHP&JS] Passage de variables Php
[PHP]utiliser une chaine de caractères en nom de variables[SQL] Requête et date (Problème résolu merci...)
[PHP] comment fonctionne le magic quote runtime svp?[PHP]Sortir toutes les années se trouvant dans une BD
Plus de sujets relatifs à : Pb SQL / Php


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