BenamourJr
Messages postés31Date d'inscriptionjeudi 25 mars 2010StatutMembreDernière intervention18 septembre 2010
-
30 mars 2010 à 01:29
BenamourJr
Messages postés31Date d'inscriptionjeudi 25 mars 2010StatutMembreDernière intervention18 septembre 2010
-
30 mars 2010 à 11:26
Bonsoir !
J'essaye depuis quelques temps de faire fonctionner une requête SQL... en vain :s
Dans mon code je récupère deux types de variables provenant d'un formulaire (des $_POST['lien1'], $_POST['lien2'], $_POST['lien3'],... et ainsi de suite ainsi que des $_POST['id1'], $_POST['id2'],...) que j'utilise dans une requête SQL que voici :
<?php
for ($nb_lignes = 1; $nb_lignes <= $_POST['nb_liens']; $nb_lignes++)
{
$table = $_POST['lien' . $nb_lignes . ''];
$id2 = $_POST['id' . $nb_lignes . ''];
$requete = "INSERT INTO ".$table."(id_article, id2) VALUES('".$_GET['id']."', '".$id2."')";
echo $requete . '
'; // que j'ai inséré pour y voir plus clair dans mon erreur
$bdd->exec($requete);
}
?>
l'echo $requete me retourne ceci quand $_POST['nb_liens'] vaut par exemple 3 :
INSERT INTO article_presse_dossier(id_article, id2) VALUES('47', '5')
INSERT INTO article_presse_individu(id_article, id2) VALUES('47', '2')
INSERT INTO article_presse_dossier(id_article, id2) VALUES('47', '2')
Ce qui me semble tout à fait correct, puis que j'ai les champs 'id_article' et 'id2' dans les deux tables concernées. Seulement voila, rien n'est ajouté dans mes tables... ca ne fonctionne pas :s
Si quelqu'un pouvait m'aider à trouver mon erreur je lui en serais vraiment très reconnaissant, merci ! :)
A voir également:
Concatenation sql
Sql server concaténer plusieurs lignes dans un seul champ - Meilleures réponses
BenamourJr
Messages postés31Date d'inscriptionjeudi 25 mars 2010StatutMembreDernière intervention18 septembre 20101 30 mars 2010 à 11:26
en effet, j'ai ajouté un petit or die(print_r($bdd->errorInfo(), true)) et j'ai directement vu d'où venait mon erreur (le nom de mon champ c'est id_article_presse et non id_article... xD). Merci en tout cas :)
Par contre maintenant j'ai un autre problème :s j'ai utilisé les requêtes préparés mais apparemment je ne peux pas les utiliser pour la variable contenant le nom de ma table, ca donne donc ceci :
Le code fonctionne mais ca ne me plait pas de laisser la variable table directement dans la requête. Le problème c'est que si je remplace ".$table." par :table et que j'ajoute 'table' => $table à l'execute, ca ne marche pas...
J'ai aussi essayer de rajouter la ligne $table = mysql_real_escape_string($table); mais dans ce cas mon code ne fonctionne plus non plus...
Comment dois-je faire pour sécuriser cette variable ?