Bonjour,
Je voudrai fait une méthode qui effectue un INSERT INTO de manière dynamique.
J'ai regardé sur google et même ici mais c'est essentiellement sur des SELECT.
Moi c'est sur un insert et udpate.
Voici le code qui appel ma méthode.
Et voici ma methode
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 $bdd = bdd::getInstance(); $valeur = array($nom, $prenom, $sexe, $birth, $mail, $adresse, $zip, $ville, $passDatabase, $newsletter); $cles = array("nom", "prenom", "sexe", "birth", "mail", "adresse", "zip", "ville", "pass", "optin"); $valeurs = array('keys'=>$cles,'values'=>$valeur); $table = "users"; $idInsert = $bdd->insert($valeurs,$table);
Mais je sais que c'est pas du tout sécurisé, mais je coince au niveau de l'élaboration.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public function insert($array,$table){ $keys = implode(", ", $array['keys']); $values = implode("', '", $array['values']); $values = "'".$values."'"; $sql = "INSERT INTO $table ($keys) VALUES ($values)"; $req = $this->bdd->prepare($sql); $req->execute(); return $this->bdd->lastInsertId(); }
JE me suis dit, faut bien sur passé par des bindParam mais je ne peux pas changer le (:values) si j'en fais un.
Vous pouvez me dire mais c'est bon il faut juste casté ou sécurisé $values, mais j'ai pas envie d'avoir des htmlentities de partout et faire de html_entity_decode sur mes pages...
Alors si quelqu'un à une réponse ou je dois faire à chaque fois mes requête ?
Partager