Insertion avec array associatif
tyranausor
Messages postés
3501
Date d'inscription
Statut
Membre
Dernière intervention
-
tyranausor Messages postés 3501 Date d'inscription Statut Membre Dernière intervention -
tyranausor Messages postés 3501 Date d'inscription Statut Membre Dernière intervention -
Bonjour, après des recherches sur le web, je n'ai pas trouvé la réponse à ma question. J'ai créé un formulaire qui me retourne, en $_POST, un array associatif avec [clé]=>valeur où clé correspond au nom du champ de ma base de donnée.
J'ai un truc du genre
_______________
id|champ1|champ2|
Est-ce que c'est possible d'insérer les valeurs avec une requête préparée en "disant" à php que mes noms de champs sont en clé?
--
Les forumeurs ne sont pas des devins, en tout cas, moi non!
J'ai un truc du genre
array=([champ1]=>valeur1, [champ2]=>valeur2)et ma base mysql se présente ainsi :
_______________
id|champ1|champ2|
Est-ce que c'est possible d'insérer les valeurs avec une requête préparée en "disant" à php que mes noms de champs sont en clé?
--
Les forumeurs ne sont pas des devins, en tout cas, moi non!
2 réponses
-
Bonjour,
A la limite.. tu peux construire la requête comme ceci ://récupération PROPRE des variables //$tonArray = !empty($_POST['tonarray']) ? $_POST['tonarray'] : NULL; //pour les tests : $tonArray = array('champ1'=>'valeur1', 'champ2'=>'valeur2'); $strFields = ""; $strKeys = ""; $arrFields = array(); $arrkeys = array(); $arrDatas = array(); if($tonArray){ foreach($tonArray as $K=>$V){ $arrFields[] = $K; $arrkeys[] = ':'.$K; $arrDatas[':'.$K]=>$V; } $strFields = join(',',$arrFields); $strKeys = join(',',$arrkeys); $sql = "INSERT INTO tatable ($strFields) VALUES($strKeys);" try { $prep = $bdd->prepare($sql); $prep->execute($arrDatas); }catch(Exception $e){ echo "Erreur ! ".$e->getMessage(); } }
-
Bonjour, merci pour l'exemple de code. Je pensais qu'il existais un méthode plus rapide que de tout décomposer mais j'ai peut-être cru au Père Noël!