Bonjour,
J’essaie sans succès d'écrire un script php qui insérerait des données dans une table, en utilisant la méthode des Requête préparée. J'arrive à passer les paramètres VALUE(?,?,?) sans problèmes mais par contre j’essaie en vain de passer le nom d'une table dans la préparation de la requête. Dans la requête SQL il ne faut pas qu'elle soit entouré de quotes, mais je n'arrive pas a m'en débarrasser:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <?php
$table = 'user';
$first_name = 'Gros';
$last_name = 'Minet';
$email = 'cartoon@gmail.com';
try {
$dbh = new PDO('mysql:host=localhost;dbname=newdb', 'mon_user', 'pon_pswd');
$dbh->setAttribute ( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$sql = "INSERT INTO ? (first_name, last_name, email) VALUE(?,?,?)";
$sq = $dbh->prepare ( $sql );
$sq->execute(array(
$table,
$first_name,
$last_name,
$email)
);
} catch ( PDOException $e ) {
echo 'ERREUR : ' . $e->getMessage ();
}
?> |
Au final ma requete SQL est:
INSERT INTO 'user' (first_name, last_name, email) VALUE('Gros','Minet','cartoon@gmail.com')
et cela ne marche pas, il faudrait:
INSERT INTO user (first_name, last_name, email) VALUE('Gros','Minet','cartoon@gmail.com')
J'ai beau chercher sur le net, je n'y arrive pas. Peut être que cela n'a pas d’intérêt(Je peux imaginer sortir cette variable de la préparation de la requête), mais je suis un peu têtu.
Merci d'avance.
Partager