Bonjour ,
je sollicite vos connaissances en programmation car je n’arrive pas à envoyer la données d’un formulaire dans une base de donnée mariadb. ( formulaire est de type post et la donnée est de type préparée je fais une requete SQL pour l’envoyer en BDD) .
le formulaire de test comporte 1 input ( batiment ).
je la reçois bien dans ma variable $_POST['batiment'] sous cette forme :
exemple pour le valeur bat27 ["batiment"]=> "bat27"
voici mon petit bout de code php qui ne fonctionne pas :
$query="INSERT INTO localisation (Bât) VALUES (:bât)";
$pdostmt=$pdo->prepare($query);
$pdostmt->execute(["bât" => $_POST["batiment"]]);
Pour tester le fonctionnement je fais ça et ça marche bien :
$query="INSERT INTO localisation (Bât) VALUES ('bat27')";
$pdostmt=$pdo->prepare($query);
$pdostmt->execute();
Merci pour ta réponse Mips,
Mon besoin est de venir écrire une table dans une base de donné. (actuellement je suis hors context Jeedom c’est à dire sur un serveur php mysql perso).
Donc pour faire ceci depuis unepage , j’ai créer un bouton ajouter un équipement, qui ouvre un formulaire, ce formulaire il y a un champ bâtiment à remplir.
Ensuite la valeur est envoyer via le php en bdd.
J’ai vu sur plusieurs sites, que pour éviter l’éjection sql il faut nomer les paramètres alors c’est ce que j’ai fait avec le :bât .
En fait je ne comprends pas ce que tu reçois dans ton paramètre post; c’est littéralement la string que tu mets en exemple?
C’est ca qui m’a induit en erreur précédemment, en lisant rapidement j’ai cru que tu construisais ta requête sql dynamiquement avec ce que tu recevais du post.
l’ exemple est le résultat du var_dump de $_POST['batiment'] seul élément de mon formulaire .
j’ai l’impression que le : bat ne prend pas le paramètre au moment de l’exécution, mais je n’en suis pas sure car pas de message d’erreur , j’ai bien relu la doc php 8 et aussi vu qu’il n’était plus nécessaire d’utiliser binValue et qu’il fallait passer le paramètre dans la requete exécution sous forme d’array
Tu n’a quand même pas mis des accents circonflexe dans les noms de colonnes et de variables! ça m’étonne que tu n’aie pas un vrai message d’erreur, le dump semble accepter ces caractères ésotériques, mais ça m’étonnerait pas que ton problème soit juste ça, commence par renommer bât => bat
Tu n’a aucun message d’erreur, juste que rien n’est modifié ?
Effectivement le problème venait bien de là Merci pifou
Pour répondre à ta question , alors ce qu’il se passait c’est que mon code php devait générer une erreur d’éxécution car mon formulaire n’apparaissait plus , quand je commentait le execute le formulaire revenait .
Par contre dans la console Firefox rien d’affiché .
Ou devrais-je trouver ce type de problème d’afficher ?
Dans firefox tu a sans doute une erreur 500… Dans ce cas le log est à chercher côté serveur dans les logs apache s’il n’y a rien d’autre.
En php tu peux aussi faire un try () catch () pour attraper l’erreur et mettre un log personnalisé dans un fichier à toi.