[PHP] Variable dans le champ d'une table SQL

Résolu
Bonjour, je crée actuellement un site en PHP et j'ai un problème, pouvez-vous m'aider svp ?

J'aimerais pouvoir remplacer

INSERT INTO ips(c4) VALUES(...)


par une ligne de code ne faisant plus apparaître le "4" mais simplement une variable nommée id qui contiendrait 4 (mais qui pourrait contenir autre chose !)

J'ai essayé c$id, c.'$id' et d'autres trucs mais rien ne marche. Aidez ce pauvre homme en détresse que je suis svp !

5 réponses

  1. Salut !
    En fait, quand tu fais c$id, ça devrait marcher, à moins que tu utilises les simples-quotes ( ' ) pour délmiter ta requête. Exemple :
    <?php
    $id = 4;
    echo 'c$id'; // affiche c$id
    echo "c$id"; // affiche c4
    ?>

    Donc utilise les double-quotes ( " ). Et pour éviter d'autres problèmes, encadre ta variable avec des accolades.

    Une requête comme celle-ci devrait marcher :
    $req = "INSERT INTO ips(c{$id}) VALUES(...)";
    2
    1. Okay, alors rajoute ceci juste après la requête qui marche pas :
      echo '<pre>'; 
      print_r($bdd->errorInfo()); 
      echo '</pre>';

      Et montre-moi ce que tu vois.

      Edit: Je viens de voir que tu as mélangé les quotes, essaye ceci :
      $bdd->exec("... VALUES('".$ip_user."' ... ");

      Normalement, tu aurais eu une PARSE_ERROR ou quelque chose dans ce genre. As-tu modifié la valeur de error_reporting ?
      1
      1. Ca ne marche pas :(

        Voici la ligne entière :

        $bdd->exec('INSERT INTO ips(ip, c{$identifiant}) VALUES("'.$ip_user.'", 1)');


        $identifiant ayant déjà été défini comme valant 1.
        0
        1. Je précise que

          $bdd->exec("INSERT INTO ips(ip, c{$identifiant}) VALUES("'.$ip_user.'", 1)");


          ne marche pas non plus, et que

          $reponse1 = $bdd->query('SELECT * FROM ips WHERE ip="'.$ip_user.'" AND c1=1');
          marche (mais y'a pas la variable)

          mais pas :

          $reponse1 = $bdd->query("SELECT * FROM ips WHERE ip="'.$ip_user.'" AND c1=1");


          !
          0