[PHP] noob fonction update

noob fonction update [PHP] - PHP - Programmation

Marsh Posté le 12-09-2008 à 12:41:00    

bonjour,
j'ai un soucis avec la fonction update.
je cherche a remplir des champs vide d'une table en fonction d'un champ justement.
le champ serial est ma reference et je remplit les autres champs a partir de celui ci
 

Code :
  1. if(isset($_POST['serial']))      $serial=$_POST['serial'];
  2. else      $serial="";
  3. if(isset($_POST['daterev1']))      $daterev1=$_POST['daterev1'];
  4. else      $daterev1="";
  5. if(isset($_POST['kit1']))      $kit1=$_POST['kit1'];
  6. else      $kit1="";
  7. if(isset($_POST['compteur1']))      $compteur1=$_POST['compteur1'];
  8. else      $compteur1="";
  9.        // connexion à la base
  10. $db = mysql_connect('localhost','root','') or die('Erreur de connexion '.mysql_error());
  11. // sélection de la base   
  12.     mysql_select_db('xoops',$db)  or die('Erreur de selection '.mysql_error());
  13.    
  14.     // on écrit la requête sql
  15.     $sql = "UPDATE clients_tbl SET $daterev1, $kit1, $compteur1 WHERE serial='$serial'";
  16.    
  17.     // on insère les informations du formulaire dans la table
  18.     mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
  19.     // on affiche le résultat pour le visiteur
  20.     echo 'le générateur est rentré dans la base';


mais je rencontre une erreur a chaque fois
 
Erreur SQL !UPDATE clients_tbl SET test, test, compteur1 WHERE serial='serial'
Erreur de syntaxe près de ' test, compteur1 WHERE serial='serial'' à la ligne 1
 
alors erreur de syntaxe ou mauvaise methode ?


Message édité par marilyan le 12-09-2008 à 13:11:05

---------------

Reply

Marsh Posté le 12-09-2008 à 12:41:00   

Reply

Marsh Posté le 12-09-2008 à 12:53:38    

Voir la documentation de mysql

Citation :

UPDATE [LOW_PRIORITY] [IGNORE] tbl_name
    SET col_name1=expr1 [, col_name2=expr2 ...]
    [WHERE where_definition]
    [ORDER BY ...]
    [LIMIT row_count]


"SET col_name1=expr1" Donc soit il te manque les valeurs soit il te manque les noms de colonnes. On ne peut pas mettre l'un sans l'autre.

Reply

Marsh Posté le 12-09-2008 à 13:24:10    

merci bcp !
 

Code :
  1. $sql = "UPDATE clients_tbl SET daterev1='$daterev1', kit1='$kit1', compteur1='$compteur1' WHERE serial='$serial'";


voila le code corrigé


---------------

Reply

Marsh Posté le 12-09-2008 à 13:29:47    

NEVER TRUST USER INPUT :p
 
il faut sécuriser les $_POST en utilisant des fonctions telles que mysql_real_escape_string, ce serait cool :p


---------------
arg(z) = pi /2 donc z = i, moi je prends pas
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed