Php insertion des données dans une bdd sql

bonjour;
j'ai un code php employé pour soumettre un formulaire et insérer ses données dans une base de données sql.

j'ai fait recourt à cette requête pour faire insérer mes données mais en vains.

$sql = "INSERT INTO client VALUES($ind,$_GET['nom'],$_GET['prenom'],$_GET['adr'],$_GET[cp],$_GET['vil'],$_GET['reg'],$_GET[tel],$_GET[fax],$_GET['mail'],$_GET['mp'],$_GET['login'])";  


ça n'a pas marché!

pouvez vous m'aidez à fin de rectifier le probleme.
cordialement.

5 réponses

  1. Dans une requête sql, il faut mettre des ' autour des chaînes de caractères (juste pour les chaînes, pas besoin pour les nombres par exemple)
    0
    1. ça n'a pas marché!

      $sql = "INSERT INTO client VALUES($ind,'$_GET['nom']','$_GET['prenom']','$_GET['adr']',$_GET['cp'],'$_GET['vil']','$_GET['reg']',$_GET['tel'],$_GET['fax'],'$_GET['mail']',$_GET['mp'],'$_GET['login']')"; 


      et le message d'erreur est:

      Parse error: parse error, expecting 'T_STRING' or 'T_VARIABLE' or 'T_NUM_STRING' in C:\wamp\www\rdl\inscription.php on line 42
      0
      1. Ca vient peut être des ' de tes get qui "brouillent" les ' de la requête (me paraît bizarre, m'enfin!)
        En en remplaçant par quelquechose comme ça, ca ne marche tjs pas ? (j'ai rien pour vérifier que la syntaxe est bonne, il se peut qu'il y ait des . ou des " mals placés ^^)

        $sql = "INSERT INTO client VALUES($ind,'".$_GET['nom']."','".$_GET['prenom']."','".$_GET['adr']."',$_GET['cp'],'".$_GET['vil']."','".$_GET['reg']."',$_GET['tel'],$_GET['fax'],'".$_GET['mail']."',$_GET['mp'],'".$_GET['login']."')"; 


        edit : maintenant que j'y repense, il me semble que quand on met directement un tableau (en l'occurence get) dans une chaîne de caractère, sans passer par la concaténation, ca pose problème
        0
        1. Bonjour,

          Essaye avec cette forme :

          "INSERT INTO client(nom, prenom,...) VALUES('$_GET['nom']', '$_GET['prenom']',...)";
          0
          1. Il a peut être cette erreur-ci aussi, mais l'erreur qui a montré, c'est une erreur php, pas une erreur sql, donc ca ne la règlera pas ^^
            0
          2. Ah oué autant pour moi, donc la seule "erreur" que je verrai et je te rejoind , c'est l'utilistation des get directelent dans la requete; peut etre faut-il passer par des variables simples..
            0
          3. oui j'ai essayé avec des variables simples et ça marche parfaitement!
            merci.
            0
        2. Euh... je peux me tromper mais tes informations que tu ajoute dans la base de donnée il vienne d'un formulaire?

          Si oui

          serai-t-il pas plus approprier de prendre les $_POST à la place de $_GET ?
          0
          1. Bah tout dépend quelle méthode il utilise dans son formulaire ! Mais à mon avis , que se soit $_POST ou $_GET, sa ne marchera pas directement dans une requete SQL..
            0
          2. pas faux...
            0