Page 1 sur 1

requete sql valide mais pas de changements dans la bdd

Posté : 25 avr. 2014, 20:29
par urumizawa
bonsoir,
écrivant ici, je suis évidemment débutant en php et mysql souhaitant résoudre mon problème de newbie.

j'ai commencer a faire un espace membre (après avoir vu les bases du langage) j'ai commencé par faire ma table "members" dans ma base de données appelée "users"
ensuite j'ai fait ma page d'inscription "index.php" contenant le formulaire ci-dessous qui marche parfaitement (évidemment puisqu'il n y a que du html)

Code : Tout sélectionner

<form method="post" action="register.php"> <p> <input type="text" name="identifiant" required /> <input type="text" name="email" required /> <input type="password" name="psw" required /> <input type="submit" value="register"/> </p> </form>
ensuite pour la page "register.php" j'ai mis ce code

Code : Tout sélectionner

<?php try { $bdd = new PDO('mysql:host=localhost;dbname=users', 'mon_identifiant', 'mon_mot_de_passe'); } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <title>bienvenue</title> <link href="style.css" rel="stylesheet" type="text/css" /> </head> <body> <?php include ("includes/header/header.php"); ?> <div> <?php $req = $bdd->prepare('INSERT INTO members(id, identifiant, nom, prenom, psw, email) VALUES(:id, :identifiant, :nom, :prenom, :psw, :email)'); $req->execute(array( 'id' => '', 'identifiant' => $_POST['identifiant'], 'nom' => '', 'prenom' => '', 'psw' => $_POST['psw'], 'email' => $_POST['email'] )); echo 'votre compte a été enregistré'; ?> <?php include ("includes/footer/footer.php"); ?> </div> </body>
la page n'affiche aucune erreur, la connexion a bien eu lieue mais en accédant a la bdd depuis phpmyadmin je ne retrouve pas le compte dans la bdd je suis sur que c'est juste une faute de noob mais j'arrive pas a la retrouvé meme

ps: j'utilise wamp en localhost

Re: requete sql valide mais pas de changements dans la bdd

Posté : 25 avr. 2014, 21:25
par Trenck
Salut,

Enleve le champ "id" de ta requete d'insertion (je suppose qu'il est en autoincrement).

Bye

Re: requete sql valide mais pas de changements dans la bdd

Posté : 25 avr. 2014, 21:36
par urumizawa
Enleve le champ "id" de ta requete d'insertion (je suppose qu'il est en autoincrement).
ca marche maintenant mais il y a juste un truc que je ne comprends pas:
dans "insert to bdd" et "value" dois-je mettre toutes les colonnes a part celle(s) en autoincrement? car avant de laisser un vide dans les champs: nom, prenom et id j'ai essayer de supprimer ces 3 colonnes et il y avait le même probleme

en tout cas merci bien

Re: requete sql valide mais pas de changements dans la bdd

Posté : 26 avr. 2014, 11:39
par xTG
Tu dois mettre toutes les colonnes qui n'ont pas de valeur par défaut. ;)

Re: requete sql valide mais pas de changements dans la bdd

Posté : 26 avr. 2014, 11:59
par urumizawa
Tu dois mettre toutes les colonnes qui n'ont pas de valeur par défaut. ;)
:roll: mais la ca a marcher normalement qu'en supprimant l'une des colonnes (la colonne id)

Re: requete sql valide mais pas de changements dans la bdd

Posté : 26 avr. 2014, 15:55
par xTG
Parce que la colonne id est la seule à posséder une valeur par défaut non ? :roll:
L'auto-increment lui assigne une valeur. ;)

Re: requete sql valide mais pas de changements dans la bdd

Posté : 26 avr. 2014, 19:13
par urumizawa
Parce que la colonne id est la seule à posséder une valeur par défaut non ? :roll:
L'auto-increment lui assigne une valeur. ;)
Je comprends mieux maintenant
Merci

Re: requete sql valide mais pas de changements dans la bdd

Posté : 26 avr. 2014, 23:43
par moogli
Modération :
Si ta question est résolue, pense à l'indiquer pour que les futures personnes qui voudront consulter ce sujet sachent qu'il contient une solution.
Tu peux réaliser cette opération toi-même en cliquant sur le bouton vert "Mettre le sujet en tant que Résolu" situé en haut de la page à côté du titre du sujet.

je le fait pour toi pour cette fois ci ;)