Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PDO
PDO Forum d'entraide sur PDO (PHP Data Objects) : pilote générique de bases de données avec PHP. Avant de poster -> FAQ PDO et Cours PDO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/02/2012, 23h09   #1
Invité de passage
 
Inscription : janvier 2011
Messages : 24
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 24
Points : 4
Points : 4
Par défaut PDO place horders pour le nom de table et champs ?

Bonjour,

J'essaies de faire ceci :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
$sql2 = "INSERT INTO :table (idratio, :champ) VALUES ($dernier_id, :id)";
    $prep2 = $db->prepare($sql2);
    //On construit les blindValues en fonction des paramètres renseignés
    //Puis on insert à chaque if = true
    if (!isset($idjeu) && is_int($idjeu)) {
        $prep2->bindValue(':table', 'bonus_jeu', PDO::PARAM_STR);
        $prep2->bindValue(':champ', 'idjeu', PDO::PARAM_STR);
        $prep2->bindValue(':id', $idjeu, PDO::PARAM_INT);
        $prep->execute();
    }
    if (!isset($idlangue) && is_int($idlangue)) {
        $prep2->bindValue(':table', 'bonus_langue', PDO::PARAM_STR);
        $prep2->bindValue(':champ', 'idlangue', PDO::PARAM_STR);
        $prep2->bindValue(':id', $idlangue, PDO::PARAM_INT);
        $prep->execute();
    }
    if (!isset($idtypecontent) && is_int($idtypecontent)) {
        $prep2->bindValue(':table', 'bonus_typecontent', PDO::PARAM_STR);
        $prep2->bindValue(':champ', 'idtypecontent', PDO::PARAM_STR);
        $prep2->bindValue(':id', $idtypecontent, PDO::PARAM_INT);
        $prep->execute();
    }
    if (!isset($idlangue) && is_int($idlangue)) {
        $prep2->bindValue(':table', 'bonus_langue', PDO::PARAM_STR);
        $prep2->bindValue(':champ', 'idlangue', PDO::PARAM_STR);
        $prep2->bindValue(':id', $idlangue, PDO::PARAM_INT);
        $prep->execute();
    }
est-ce possible ?
drYouz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2012, 08h56   #2
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
Non,
par contre ça :

Code :
$sql2 = "INSERT INTO $table (idratio, $champs) VALUES ($dernier_id, :id)";
oui

Donc dans ton cas il faut repréparer la requête, ce qui logique puisque n'étant pas sur les même table/champs le plan d'execution compilé lors du prepare ne peut être identique.

même si à priori tu ne peux pas injecter grand chose à ces endroits là il convient de bien nettoyer/filtrer/vérifier $table et $champs.
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h33.


 
 
 
 
Partenaires

Hébergement Web