Proble requete enfin je crois

Eléphant du PHP | 258 Messages

07 déc. 2006, 20:18

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.

Mammouth du PHP | 1776 Messages

07 déc. 2006, 20:34

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 !

Eléphant du PHP | 258 Messages

07 déc. 2006, 21:13

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.

Eléphant du PHP | 445 Messages

07 déc. 2006, 21:15

$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
LLDC
Ulti

Eléphant du PHP | 258 Messages

07 déc. 2006, 21:25

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.

Eléphant du PHP | 445 Messages

07 déc. 2006, 21:36

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 ;)
LLDC
Ulti

ViPHP
ViPHP | 1961 Messages

07 déc. 2006, 21:39

Bonsoir,

Tout simplement parceque le champ "IDTn" et de type numérique et que les autres son de type caractère (CHAR() ou VARCHAR()).
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 258 Messages

07 déc. 2006, 21:48

Merci pour vos reponses, je comprend mieux maintenant.