Page 1 sur 1

Proble requete enfin je crois

Posté : 07 déc. 2006, 20:18
par 2501gigi
Bon voila , à oui j'oubliais, bonjour à tous, je disais donc que j'ai une requete :
$insertLiensI = 'INSERT INTO tliensI SET TITliensI='. $TitreTexteLiens .' , TEXliensI='. $TTexteliens ;
et quand je rentre des infos dans mon champs texte qui s'appel 'TexteLiens' et que j'envois mon formulaire il me dis :
Table inconnue 'www.nomdusite' dans field list
Bon alors voila se qui et passer dans post
Array
(
[RadioLiens] => BINCON
[TexteLiens] => bob
[TitreLiens] => www.nomdusite.fr
[actionajoul] => Ajouter
)
et voilà si j'affiche ma requete sql

Code : Tout sélectionner

INSERT INTO tliensI SET TITliensI=www.nomdusite.fr , TEXliensI=bob
et si je transforme ma requete en faisant sa :
$insertLiensI = "INSERT INTO tliensI SET TITliensI='". $TitreTexteLiens ."' , TEXliensI=". $TTexteliens ;
Ma requete m'affiche sa :

Code : Tout sélectionner

INSERT INTO tliensI SET TITliensI='www.nomdusite.fr' , TEXliensI=bob
et l'erreur et :
Champ 'bob' inconnu dans field list
Une idée ?
Merci d'avance.

Posté : 07 déc. 2006, 20:34
par DocType
Et oui...il faut penser à protéger ses champs !

Imagines tu fais un truc du genre:

Code : Tout sélectionner

UPDATE matable SET mon_champ=bomorane fait le, mon_champ2=tout a fait WHERE id=ou
Dans cette logique, mon_champ sera égal à :
bomorane fait le, mon_champ2=tout a fait WHERE id=ou
Il faut délimiter ta chaîne, le language SQL n'a pas encore la possibilité de lire dans les pensées, il a besoin d'un minimum de rigueur !

Posté : 07 déc. 2006, 21:13
par 2501gigi
Merci mais je comprend pas il faut que je fasse quoi ca :
$insertLiensI = "INSERT INTO tliensI SET TITliensI='". $TitreTexteLiens ."' , TEXliensI=". '$TTexteliens' ;

je comprend pas se que tu veut dire par protéger.

Posté : 07 déc. 2006, 21:15
par Ultim4T0m
$insertLiensI = "INSERT INTO tliensI SET TITliensI='". $TitreTexteLiens ."' , TEXliensI='". $TTexteliens."'";
Plutôt quelque chose comme cela.
Tu dois "enfermer" tes chaines de caractères entre simple quotes, sinon, cela donne ce qu'a dit LHDN92

Posté : 07 déc. 2006, 21:25
par 2501gigi
Merci sa marche Mais alors quelqu'un peut me dire pourquoi sa sa marche :
$modifierNews="UPDATE tnews SET TITnew= '" . $TitreTexteNews . "' ,TEXnew= '" . $Textnews . "' WHERE IDTn= " . $IDmodif;
Ma varible $IDmodif n'est pas fermer et ma requete marche nickel.

Posté : 07 déc. 2006, 21:36
par Ultim4T0m
Car $IDmodif est un nombre, et non une chaine de caractères.

Il n'y a pas besoin de protéger les nombres, SQL les interprète sans problème ;)

Posté : 07 déc. 2006, 21:39
par Ajoloca
Bonsoir,

Tout simplement parceque le champ "IDTn" et de type numérique et que les autres son de type caractère (CHAR() ou VARCHAR()).

Posté : 07 déc. 2006, 21:48
par 2501gigi
Merci pour vos reponses, je comprend mieux maintenant.