Bonjour,
Je me prends la tête depuis des heures à tourner autour du pot sans trouver de solution. Si quelqu'un pouvait m'expliquer ça serait juste géniaaaal .
Alors voila, je ne demande pas la chose la plus compliquée du monde. Je suis en php poo sous architecture MVC design façade. Je cherche à faire des requêtes préparées pour éviter les injections SQL.
J'ai une classe ClientManager.class.php dans laquelle je prépare un tableau associatif de paramètres en clé et leurs valeurs associées en...valeur. Cette classe appelle ensuite une méthode static dans une classe de gestion des exécutions de requête à la base de données.
Dans cette dernière, je boucle le tableau de paramètres pour faire un bindParam() ou un bindValue() (toujours pas compris la différence) et c'est là que je mords mon chapeau.
J'ai essayé :
ainsi que
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 foreach($aQueryParams as $key => &$value){ $stmt->bindParam($key, $value); }
A chaque fois, c'est la CLE qui est insérée dans ma table de base de données au lieu de la VALEUR. J'ai même inversé à un moment les clés et les valeurs dans mon tableau, bref j'ai essayé toutes les combinaisons, je n'ai jamais d'erreur, mais toujours ce même mauvais résultat.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 foreach($aQueryParams as $key => $value){ $stmt->bindValue($key, $value); }
Après avoir parcouru à peu prêt tous les topics de stackoverflow sur la question, je ne comprends toujours pas où ça coince.
Donc je sollicite de tout coeur votre aide
Si vous voulez voir le code complet, c'est ligne 44 de la classe ClientManager.class.php et 97 de la classe DBOperation.class.php ici : https://github.com/code-climber/car_...ntal/model/dao
A+
Partager