[PHP] Variable dans le champ d'une table SQL [Résolu/Fermé]

Signaler
-
Messages postés
682
Date d'inscription
vendredi 1 août 2008
Statut
Membre
Dernière intervention
28 juin 2015
-
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

Messages postés
682
Date d'inscription
vendredi 1 août 2008
Statut
Membre
Dernière intervention
28 juin 2015
184
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
682
Date d'inscription
vendredi 1 août 2008
Statut
Membre
Dernière intervention
28 juin 2015
184
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 ?
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.
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");


!
Merci beaucoup, ça fonctionne !

Je n'avais jamais rencontré le terme "error_reporting" par contre...

Mais merci encore :D
Messages postés
682
Date d'inscription
vendredi 1 août 2008
Statut
Membre
Dernière intervention
28 juin 2015
184