[résolu]Petit souci de requête

WRInaute occasionnel
Bonjour,

j'ai une requete UPDATE qui semble correcte mais qui ne fonctionne pas :


Code:
$sql = "UPDATE lignedecommande SET Qte = ".$_POST['Qte'][$i]." Stock = ".$_POST['Stock'][$i]." WHERE Produit = ".$_POST['Produit'][$i]." AND idcom = $idcom "

y a t-il une erreur dans cette requête?
si je fais un echo $sql j'obtiens :
Code:
UPDATE lignedecommande SET Qte = 5 Stock = 1 WHERE Produit = ABRICOT AND idcom = 03072008150713

merci d'avance
 
WRInaute discret
salut,

Je pense qu'il manque les quotes pour les champs varchar :
Code:
UPDATE lignedecommande SET Qte = 5 Stock = 1 WHERE Produit = 'ABRICOT' AND idcom = 03072008150713
 
WRInaute discret
Et en ajoutant une virgule entre tes 2 valeurs :

Code:
$sql = "UPDATE lignedecommande SET Qte = ".$_POST['Qte'][$i].", Stock = ".$_POST['Stock'][$i]." WHERE Produit = '".$_POST['Produit'][$i]."' AND idcom = $idcom "
 
WRInaute discret
re,

Essaie ça :
Code:
$sql = "UPDATE lignedecommande SET Qte = ".$_POST['Qte'][$i]." , Stock = ".$_POST['Stock'][$i]." WHERE Produit = '".$_POST['Produit'][$i]."' AND idcom = '$idcom' "

Manquait aussi une virgule. j'ai mis des quote sur idcom ne sachant si c'etait un varchar ou un numeric
 
WRInaute occasionnel
merci effectivement j'avais oublié la virgule j'aurais pu chercher encore longtemps comme ça!
 
WRInaute accro
Au delà du petit problème de virgule, j'espère surtout que tu valides ce que tu passes à ta base de données SQL (i.e. que les différentes $_POST[machin][chose] sont bien des nombres et rien d'autre), sinon tu t'ouvres à une jolie attaque par injection SQL!

Et je ne sais pas à quoi correspondante "Qte" et "Stock" chez toi, mais j'ai tendance à penser que "Stock" ne devrait pas vraiment faire l'aller-retour par l'utilisateur, mais bien être géré en local, non?

Jacques.
 
WRInaute impliqué
jcaron a dit:
Au delà du petit problème de virgule, j'espère surtout que tu valides ce que tu passes à ta base de données SQL (i.e. que les différentes $_POST[machin][chose] sont bien des nombres et rien d'autre), sinon tu t'ouvres à une jolie attaque par injection SQL!

Et je ne sais pas à quoi correspondante "Qte" et "Stock" chez toi, mais j'ai tendance à penser que "Stock" ne devrait pas vraiment faire l'aller-retour par l'utilisateur, mais bien être géré en local, non?

Jacques.
Je suis complètement d'accord, c'est assez effrayant psychologiquement de voir des $_POST dans la requête.
 
Discussions similaires
Haut