Pas d'enregistrements après un Insert en PHP avec Mysql.
Résolu
MUHI100
Messages postés
2
Statut
Membre
-
MUHI100 -
MUHI100 -
Bonjour tout le monde !
J'apprends à développer avec PHP , MySQL avec Wamp sous Windows 10.
Avec le code ci-dessous tout ce passe comme normal sans message d'erreur et pourtant rien n'est enregistré dans la table tbclient.
Je recours à votre aide et merci d'avance.
<?php
//variables de connexion à la BDD
$hote = 'localhost';
$uti = 'root';
$mpas = '';
$nbdd = 'dbjoyaux';
//connexion à la BDD
try
{
$Conx = new PDO("mysql:host=$hote;dbname=$nbdd", $uti, $mpas);
}
catch( PDOException $Exception )
{
echo "Erreur !<br>";
echo $Exception->getMessage();
echo $Exception->getCode();
exit();
}
//récupération des variables du formulaire:
try
{
$pren = isset($_POST['pren']);
$nom= isset($_POST['nom']);
$datn = isset($_POST['datn']);
$adres = isset($_POST['adres']);
$Idcli='';
}
catch( PDOException $Exception )
{
echo "Erreur !<br>";
echo $Exception->getMessage();
echo $Exception->getCode();
exit();
}
// préparation de la requête :
$sql = $Conx->prepare('INSERT INTO tbclient(PrenCli,NomCli,Datnais,Adresse) VALUES (:Pren,:Nom,:Datn,:Adres)');
$sql->execute(array(
':Pren' => $pren,
':Nom' => $nom,
':Datn' => $datn,
':Adres' => $adres
));
?>
J'apprends à développer avec PHP , MySQL avec Wamp sous Windows 10.
Avec le code ci-dessous tout ce passe comme normal sans message d'erreur et pourtant rien n'est enregistré dans la table tbclient.
Je recours à votre aide et merci d'avance.
<?php
//variables de connexion à la BDD
$hote = 'localhost';
$uti = 'root';
$mpas = '';
$nbdd = 'dbjoyaux';
//connexion à la BDD
try
{
$Conx = new PDO("mysql:host=$hote;dbname=$nbdd", $uti, $mpas);
}
catch( PDOException $Exception )
{
echo "Erreur !<br>";
echo $Exception->getMessage();
echo $Exception->getCode();
exit();
}
//récupération des variables du formulaire:
try
{
$pren = isset($_POST['pren']);
$nom= isset($_POST['nom']);
$datn = isset($_POST['datn']);
$adres = isset($_POST['adres']);
$Idcli='';
}
catch( PDOException $Exception )
{
echo "Erreur !<br>";
echo $Exception->getMessage();
echo $Exception->getCode();
exit();
}
// préparation de la requête :
$sql = $Conx->prepare('INSERT INTO tbclient(PrenCli,NomCli,Datnais,Adresse) VALUES (:Pren,:Nom,:Datn,:Adres)');
$sql->execute(array(
':Pren' => $pren,
':Nom' => $nom,
':Datn' => $datn,
':Adres' => $adres
));
?>
1 réponse
-
-
Bonjour Jordane,
J'ai vérifié le fichier php.ini, il est OK.
J'ai ajouté les 3 lignes dans mon code pour activer l'affichage des erreurs mais le problème reste le même: pas de message d'erreurs et pas d'enregistrements dans la table.
Cordialement.
Alfred- OK...
mais la réupération des données ???*
Là tu as écrits :$pren = isset($_POST['pren']); $nom= isset($_POST['nom']); $datn = isset($_POST['datn']); $adres = isset($_POST['adres']);
Autant dire que tes lignes ne sont pas complètes ....
Et ensuite .. tu pourras passer à ceci :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
C'est à dire :
- placer CHAQUE requêtes dans des blocs TRY CATCH
- activer la gestion des erreurs dans la connexion à ta bdd (la connexion PDO)
- Placer le code de connexion dans un fichier à part que tu incluras dans ta page
Une fois tout ça mis en place... postes nous le code corrigé.
NB : Pour poster du code sur le forum.. merci d'utiliser la coloration syntaxique (les balises de code).
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
-
Les problèmes sont résolus.
Après avoir suivi toutes vos directives, les messages d'erreur s'affichent et après correction, les données sont bel et bien enregistrées dans la table.
<?php
//affichage des erreurs php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
//connexion à la BDD
include("CdConnexBD.php");
//récupération des variables du formulaire:
try
{
$pren = !empty($_POST['pren']) ? $_POST['pren'] : NULL;
$nom = !empty($_POST['nom']) ? $_POST['nom'] : NULL;
$datn = !empty($_POST['datn']) ? $_POST['datn'] : NULL;
$adres = !empty($_POST['adres']) ? $_POST['adres'] : NULL;
//$Idcli='';
}
catch( PDOException $Exception )
{
echo "Erreur !<br>";
echo $Exception->getMessage();
echo $Exception->getCode();
exit();
}
echo $pren;
echo $nom;
echo $datn;
echo $adres;
// préparation de la requête :
$sql = "INSERT INTO tbclient(PrenCli,NomCli,Datnais,Adresse) VALUES (:Pren,:Nom,:Datn,:Adres)";
$datas=array(
':Pren' => $pren,
':Nom' => $nom,
':Datn' => $datn,
':Adres' => $adres
);
// Execution de la requette
try
{
$req = $Conx -> prepare($sql);
$req -> execute($datas);
}
catch(Exception $e)
{
//en cas d'erreur dans la requete ::
echo "Erreur ! ".$e->getMessage()."<br>";
echo "datas :<br>";
print_r($datas);
echo "</pre>";
}
?>
Merci beaucoup Jordane. -
-