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

Résolu/Fermé
Fastoche - 10 août 2011 à 18:34
Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 - 11 août 2011 à 11:46
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 !


A voir également:

5 réponses

Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 185
10 août 2011 à 18:42
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
Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 185
Modifié par Groarh le 10/08/2011 à 22:19
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
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Merci beaucoup, ça fonctionne !

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

Mais merci encore :D
0
Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 185
11 août 2011 à 11:46
0