Insertion dans une base de données avec PHP
Résolu
Bonjour,
les amis j'ai un petit probleme avec l'insertion de données avec php et pdo ce code ne me revois aucune erreur mais lorsque j'accède a ma base de données les champs que j'ai ajouté ne s'affiche pas dans ma base de données.
<?php
try
{
$conn = new PDO('mysql:host=localhost;dbname=membres','root','');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo 'la base de données est morte';
}
?>
<?php
if(!empty($_POST['login']) && !empty($_POST['mail']) && !empty($_POST['ville']))
{
$login = $_POST['login'];
$mail = $_POST['mail'];
$ville = $_POST['ville'];
$q = array(
'login' =>$login,
'mail'=>$mail,
'ville'=>$ville
);
$sql = 'INSERT INTO client (login, mail, ville) VALUES (:login , :mail , :ville)';
$req = $conn->prepare($sql);
$req->execute($q);
?>
<form action='connexion.php' methode='post'>
<input type='texte' name='login'>
<input type='texte' name='mail'>
<input type='texte' name='ville'>
<input type="submit" name="valider">
</form>
</body>
</html>
les amis j'ai un petit probleme avec l'insertion de données avec php et pdo ce code ne me revois aucune erreur mais lorsque j'accède a ma base de données les champs que j'ai ajouté ne s'affiche pas dans ma base de données.
<?php
try
{
$conn = new PDO('mysql:host=localhost;dbname=membres','root','');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo 'la base de données est morte';
}
?>
<?php
if(!empty($_POST['login']) && !empty($_POST['mail']) && !empty($_POST['ville']))
{
$login = $_POST['login'];
$mail = $_POST['mail'];
$ville = $_POST['ville'];
$q = array(
'login' =>$login,
'mail'=>$mail,
'ville'=>$ville
);
$sql = 'INSERT INTO client (login, mail, ville) VALUES (:login , :mail , :ville)';
$req = $conn->prepare($sql);
$req->execute($q);
?>
<form action='connexion.php' methode='post'>
<input type='texte' name='login'>
<input type='texte' name='mail'>
<input type='texte' name='ville'>
<input type="submit" name="valider">
</form>
</body>
</html>
1 réponse
-
Bonjour
tes pamarètres nommés s'appellent :login,:mail et :ville, pas seulement login,mail et ville$q = array( ':login' =>$login, ':mail'=>$mail, ':ville'=>$ville );
Comme dans l'exemple du manuel php à la méthode execute :
http://www.php.net/manual/fr/pdostatement.execute.php-
-
Ça ne m'étonne pas, je me rends compte que ma remarque était une bêtise. Après essais, :login ou login, les deux sont acceptés.
Par contre, je m'aperçois que dans ta balise <form> tu as mal écrit method, tu as écrit methode avec un e. Donc la variable $_POST doit être vide
corrige l'orthographe de method. -
Petit détail ce bout de code :
}
catch(PDOException $e)
{
echo 'la base de données est morte';
}
?>
Se place en général tout en bas de bas juste avant la balise body, car cela sert à indiquer une erreur mais s'il n'y a rien entre les accolades, il n'y a rien à vérifié donc tu ne sais pas s'il y a une erreur ou non ( en particulier avec la connexion à la bdd, mais dans ton cas ca m'a l'air correct ) -
-
-