Problème requête préparée

navalex Messages postés 149 Date d'inscription mardi 3 juillet 2012 Statut Membre Dernière intervention 31 octobre 2017 - 22 déc. 2014 à 19:59
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 2 févr. 2015 à 02:16
Bonjour,

Je vous contact, car je tente de faire une requête plutôt basique, seulement elle n'envoie rien dans ma base de donnée.

Je suis donc un train de créer un gestionnaire de permission en ligne pour les permissions d'un serveur minecraft.

Le formulaire d'ajout des permissions marche parfaitement, sauf que pour ajouter un groupe, je n'ai pas d'erreur particulière, mais la requête n'ajoute pas le groupe à la base de données. Voici mon code:

<?php
include '../kernel/inc.php';

$name = $_POST['name'];
$prefix = $_POST['prefix'];
$suffix = $_POST['suffix'];
$default = $_POST['default'];

if(empty($prefix)){$prefix="null";}
if(empty($suffix)){$suffix="null";}

if(empty($default)){$default=0;}

if(!empty($name)) {
$query = $bdd->prepare('INSERT INTO permissions_entity(name, prefix, suffix, default) VALUES(:name, :prefix, :suffix, :default)');
$query->bindParam(':name', $name);
$query->bindParam(':prefix', $prefix);
$query->bindParam(':suffix', $suffix);
$query->bindParam(':default', $default);
$query->execute();

header('Location: ' . LINK_ROOT . '?alert=success&msg=Groupe ajoutée !');

$query->closeCursor();
}

else {
header('Location: ' . LINK_ROOT . '?alert=danger&msg=Erreur durant l\'ajout du groupe !');
}
?>


Cordialement, Navalex.

1 réponse

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
Modifié par jordane45 le 2/02/2015 à 02:17
Bonjour,

Première étape... vérifier que les variables POST correspondent bien à ce que tu attends.

Et pense aussi à vérifier l'existence des variables avant de les utiliser (avec ISSET)

<?php
 include '../kernel/inc.php';

// LE TEMPS DES TESTS 
echo "<pre>Variables POST :<br>";
print_r($_POST);
echo "</pre>";

//----------------------------------------
$name = isset($_POST['name'])?$_POST['name']:NULL;
$prefix = isset($_POST['prefix']) && !empty($_POST['prefix']) ?$_POST['prefix']:"NULL";
$suffix = isset($_POST['suffix']) && !empty($_POST['suffix']) ?$_POST['suffix']:"NULL";
$default = isset($_POST['default'])  && !empty($_POST['default']) ?$_POST['default']:0;
 

if($name) {
  $query = $bdd->prepare('INSERT INTO 
                permissions_entity(name, prefix, suffix, default)
                VALUES(:name, :prefix, :suffix, :default)');
 $query->bindParam(':name', $name);
 $query->bindParam(':prefix', $prefix);
 $query->bindParam(':suffix', $suffix);
 $query->bindParam(':default', $default);
 $query->execute();

  $query->closeCursor();  
  header('Location: ' . LINK_ROOT . '?alert=success&msg=Groupe ajoutée !');
  

}else {
  header('Location: ' . LINK_ROOT . '?alert=danger&msg=Erreur durant l\'ajout du groupe !');

}
?>



Deuxième étape .. tester ta requête DIRECTEMENT dans ta BDD pour t'assurer qu'elle fonctionne.
http://codes-sources.commentcamarche.net/faq/10778-heidisql-tester-ses-requetes-sql


Cordialement,
Jordane
0
Rejoignez-nous