|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Inscription : avril 2004 Messages : 236 ![]() |
Salut à tous,
en lisant des sources à droite à gauche j'ai vu qu'il existait deux façons de créer des requetes SQL avec des variables. La concaténation: Code :
$query="insert into <matable> values (".$valeur1.",".$valeur2.",...)"; Code :
$query= sprintf("insert into <matable> values (%s,%s,....)",$valeur1,$valeur2) Quels avantages/incovénients ? Merci |
|
|
00
|
|
|
#2 | ||
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Vous en oubliez une : l'interpolation :
Code :
Julp. |
||
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() Inscription : avril 2004 Messages : 236 ![]() |
La fonction Sprintf me paraît moins lisible, mis c'est un avis personnel.
Dans le cas de l'interpolation, comment faire pour que les variables contenant des chaines de caracteres soient échappées avec des simple quote comme lre reclame MySQL. Je m'explique, voici comment je fais en concatenation: Code :
$query="INSERT INTO <matable> VALUES ('".$unechaine."','".$une_autre_chaine."'....); |
|
|
00
|
|
|
#4 | ||||
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
dans le cas d'un gros INSERT, il peut devenir compliqué, avec l'une ou l'autre methode, de voir quel champ est affecté a quel valeur, car contrairement a l'UPDATE, ils ne ont pas a coté.
a moins de faire qqchose comme ca : Code :
Code :
__________________
PHP : Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production) Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error()); Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable. Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/ |
||||
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() Inscription : avril 2004 Messages : 236 ![]() |
Donc une nouvelle technique...
|
|
|
00
|
|
|
#6 |
|
Membre émérite
![]() |
Pour ma part je conseille la concaténation.... mais ce n'était pas difficile à deviner
__________________
Le . est la base de toute bonne concaténation, marre de voir des echo "Mavar1 = $toto et Mavar2 = $titi"; ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi; pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi; |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com