Re
Oups autant pour moi ! lol oui je te rassures j'utilise abondamment ma fct sql_insert()
Ton ex
INSERT INTO table(champ) VALUES ('$_POST['valeur']');
provoque une erreur car le parser PHP ne parvient à identifier correctement ta variable $_POST['valeur']
Par contre si tu écris :
$valeur="Le PHP est génial";
$phrase="INSERT INTO table(champ) VALUES ('$valeur')";
Là ca fontionne car le parser parvient à isoler correctement la variable $valeur
comme l'a écrit Kilian tu peux faire
mysql_query("INSERT INTO table(champ) VALUES ('{$_POST['valeur']}'");
mais personnellement je trouve ca incompréhensible !
Je ne sais jamais si PHP remplace les valeurs des variables à l'intérieur des chaînes entres apostrophes ou entres guillemets.
(surtout lorqu'on a pas pratiqué de PHP depuis un certain temps)
De plus il faut également se souvenir que les accolades {} ne font pas parti de la chaine mais permettent d'indiquer EXPLICITEMENT au parser PHP où commence et où se termine la variable ...
Pourquoi faire simple quand on peut faire compliquer ?
Certe c'est puissant on peut faire des constructions du style :
$langage="PHP";
$valeur="Le $langage est génial";
$phrase="INSERT INTO table(champ) VALUES ('$valeur')";
Ouais bof, bof ...
Dans ton ex je préfère et de loin écrire :
$sql="INSERT INTO table(champ) VALUES (".$_POST['valeur'].")";
mysql_query($sql);
C'est clair, explicit, sans ambiguïté Mais c'est affaire de goût