Pourquoi j'arrive pas à exécuter mon code
- Accueil
- Forum
- Programmation
- PHP
- Pourquoi j'arrive pas à exécuter mon code
SkinDePewDiePie_ Le 23 décembre 2017 à 15:12 (Édité le 25 janvier 2019 à 17:54)
J'ai suivi les deux tutoriels de comment créer un forum j'arrive à l’épisode 3 et j'arrive pas a exécuter ce code :
$ins = $bdd->prepare('INSERT INTO f_topics (id_createur, sujet, contenu, notif_createur, date_heure_creation) VALUES(?,?,?,?,NOW())');
$ins->execute(array($_SESSION['id'],$sujet,$contenu,$notif_mail));
si seulement quelqu’un peut m'aider
Cdlt
Balatharas Le 23 décembre 2017 à 21:33 (Édité le 1 janvier 1970 à 01:00)
- utilise les balises [CODE]
- tu vois quelle erreur ?
- ne poste pas deux fois le même sujet
SkinDePewDiePie_ Le 24 décembre 2017 à 07:04 (Édité le 1 janvier 1970 à 01:00)
$ins = $bdd->prepare('INSERT INTO f_topics (id_createur, sujet, contenu, notif_createur, date_heure_creation) VALUES(?,?,?,?,NOW())');
$ins->execute(array($_SESSION['id'],$sujet,$contenu,$notif_mail));
je ne vois aucune erreur pourant
Cdlt
Balatharas Le 24 décembre 2017 à 17:48 (Édité le 1 janvier 1970 à 01:00)
<?php
$ins = $bdd->prepare('INSERT INTO f_topics(id_createur, sujet, contenu, notif_createur, date_heure_creation) VALUES(:idc, :s, :c, :nc, :dhc');
$ins->bindValue(':idc', $_SESSION['id'], PDO::PARAM_INT);
$ins->bindValue(':s', $sujet, PDO::PARAM_STR);
$ins->bindValue(':c', $contenu, PDO::PARAM_STR);
$ins->bindValue(':nc', $notif_mail, PDO::PARAM_STR);
// $ins->bindValue(':nc', $notif_mail, PDO::PARAM_BOOL); Si ta variable $notif_mail est un booléen (true/false | 0/1) alors met cette ligne plutôt que celle du dessus
$ins->bindValue(':dhc', date('Y-m-d H:i:s'), PDO::PARAM_STR);
if($ins->execute()) {
echo 'Exécution réussie';
} else {
echo 'Problème rencontré';
}
?>
SkinDePewDiePie_ Le 25 décembre 2017 à 14:06 (Édité le 1 janvier 1970 à 01:00)
Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in C:\wamp64\www\PVPArenaMatteo Site\nouveau_topic.php on line 24
Balatharas Le 25 décembre 2017 à 15:08 (Édité le 1 janvier 1970 à 01:00)
SkinDePewDiePie_ Le 25 décembre 2017 à 15:39 (Édité le 1 janvier 1970 à 01:00)
<?php
session_start();
$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_du_site', 'root', '');
if(isset($_SESSION['id'])) {
if(isset($_POST['tsubmit'])) {
if(isset($_POST['tsujet'],$_POST['tcontenu'])) {
$sujet = htmlspecialchars($_POST['tsujet']);
$contenu = htmlspecialchars($_POST['tcontenu']);
if(!empty($sujet) AND !empty($contenu)) {
if(strlen($sujet) <= 70) {
if(isset($_POST['tmail'])) {
$notif_mail = 1;
} else {
$notif_mail = 0;
}
$ins = $bdd->prepare('INSERT INTO f_topics (id_createur, sujet, contenu, notif_createur, date_heure_creation) VALUES(?,?,?,?,NOW())');
$ins->execute(array($_SESSION['id'],$sujet,$contenu,$notif_mail));
$ins->bindValue(':idc', $_SESSION['id'], PDO::PARAM_INT);
$ins->bindValue(':s', $sujet, PDO::PARAM_STR);
$ins->bindValue(':c', $contenu, PDO::PARAM_STR);
$ins->bindValue(':nc', $notif_mail, PDO::PARAM_BOOL);
$ins->bindValue(':dhc', date('Y-m-d H:i:s'), PDO::PARAM_STR);
if($ins->execute()) {
echo "Exécution réussie";
} else {
echo "Problème rencontré";
}
} else {
$terror = "Votre sujet ne peut pas dépasser 70 caractères";
}
} else {
$terror = "Veuillez compléter tous les champs";
}
}
}
} else {
$terror = "Veuillez vous connecter pour poster un nouveau topic";
}
require('views/nouveau_topic.view.php');
?>
Balatharas Le 25 décembre 2017 à 20:08 (Édité le 1 janvier 1970 à 01:00)
if(isset($_POST['tmail'])) {
$notif_mail = 1;
} else {
$notif_mail = 0;
}
par:if(isset($_POST['tmail'])) {
$notif_mail = true;
} else {
$notif_mail = false;
}
Puis de mettre ta colonne notif_createur dans ta bdd en type BOOLEAN SkinDePewDiePie_ Le 26 décembre 2017 à 08:39 (Édité le 1 janvier 1970 à 01:00)
Balatharas Le 26 décembre 2017 à 17:52 (Édité le 1 janvier 1970 à 01:00)
tu as essaye du coup ?