[RESOLU] requete sql valide mais pas de changements dans la bdd

Petit nouveau ! | 7 Messages

25 avr. 2014, 20:29

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

Trenck
Invité n'ayant pas de compte PHPfrance

25 avr. 2014, 21:25

Salut,

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

Bye

Petit nouveau ! | 7 Messages

25 avr. 2014, 21:36

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

ViPHP
xTG
ViPHP | 7331 Messages

26 avr. 2014, 11:39

Tu dois mettre toutes les colonnes qui n'ont pas de valeur par défaut. ;)

Petit nouveau ! | 7 Messages

26 avr. 2014, 11:59

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)

ViPHP
xTG
ViPHP | 7331 Messages

26 avr. 2014, 15:55

Parce que la colonne id est la seule à posséder une valeur par défaut non ? :roll:
L'auto-increment lui assigne une valeur. ;)

Petit nouveau ! | 7 Messages

26 avr. 2014, 19:13

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

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

26 avr. 2014, 23:43

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 ;)

Il en faut peu pour être heureux ......