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

Résolu
Fastoche -  
Groarh Messages postés 706 Statut Membre -
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. Groarh Messages postés 706 Statut Membre 185
     
    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
  2. Groarh Messages postés 706 Statut Membre 185
     
    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
  3. Fastoche
     
    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
  4. Fastoche
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question