1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| // on récupère les colonnes de la table
$sql = "select column_name from information_schema.columns where table_name = '$table_name'";
$stmt = $bdd->query($sql);
$colonnes_autorisees = $stmt->fetchAll();
// on construit la requête
$colonnes = [];
$params = [];
foreach ($_POST as $col => $valeur) {
// si la colonne fait partie des colonnes existantes
if (in_array($col, $colonnes_autorisees)) {
// on l'ajoute à la liste des colonnes
$colonnes[] = $col;
// on ajoute la valeur à la liste des paramètres
$params[':'.$col] = $valeur;
}
}
$sql = "INSERT INTO $table_name('".implode("', '", $colonnes)."') VALUES (".implode(',', array_keys($params)).")";
$req = $bdd->prepare($sql);
$req->execute($params); |