PHP/SQL - Envoi de données dans la base = erreur

kocipia

Habitué
Bonjour,

Je découvre le php et mySql et je commence en essayant de créer l'envoi de données vers une base.

PHP:
<?php
		$passe_hache = sha1($_POST['passe']);
		echo
		
		$req = $bdd->prepare('INSERT INTO compte(nom, prenom, mail, passe) VALUES($nom, $prenom, $mail, $passe');
		$req->execute(array(
			'nom' => $nom,
			'prenom' => $prenom,
			'passe' => $passe_hache,
			'mail' => $mail));			
	?>

Quand je rempli mon formulaire et que j’envoie, j'ai une erreur sur la ligne 5 ci dessus :

PHP:
$req = $bdd->prepare('INSERT INTO compte(nom, prenom, mail, passe) VALUES($nom, $prenom, $mail, $passe');

L'erreur :

( ! ) Catchable fatal error: Object of class PDOStatement could not be converted to string in C:\wamp\www\LTDP\actionInscrire.php on line 24
Call Stack

Voici mon formulaire d'inscription :

Code:
[code="php"]<div class ="formulaireInscription"> 		
	<form method="post" action="actionInscrire.php">
	<p>
		 <label for="nom">Votre nom</label> : <input type="text" name="nom" id="nom" /></br>
		 <label for="prenom">Votre prénom</label> : <input type="text" name="prenom" id="prenom" /></br>
		 <label for="mail">Email</label> : <input type="email" name="mail" id="mail" /></br>
		 <label for="passe">Mot de passe</label> : <input type="password" name="passe" id="passe" /></br>
		 <label for="adresse">N° et nom de rue</label> : <input type="text" name="adresse" id="adresse" /></br>
		 <label for="complement">Information complémentaire</label> : <input type="text" name="complement" id="complement" /></br>
		 <label for="cp">Code postal</label> : <input type="text" name="cp" id="cp" /></br>
		 <label for="ville">Ville</label> : <input type="text" name="ville" id="ville" /></br>
		 <label for="telfixe">Téléphone fixe</label> : <input type="text" name="telfixe" id="telfixe" /></br>
		 <label for="telport">Téléphone portable</label> : <input type="text" name="telport" id="telport" /></br>
		 </br>
		 <input type="submit" value="Envoyer" /> 
	</p>
	</div>
[/code]

Sur ma base j'ai les champs :

nom ==> varchar(255)
prenom ==> varchar(255)
mail ==> varchar(255)
passe ==> varchar(255)
IDclient ==> int(11)

Ce que je souhaites c'est que lorsque l'on clique sur envoyer, un nouvel IDclient s'autoagremente (ok dans phpmyadmin) et que les données saisis soient prises en compte.

Des idées de mon erreur ?
 

kocipia

Habitué
Après recherche j'ai réussi à ne plus avoir d'erreur avec ce code mais :

PHP:
<?php
		$nom = $_POST['nom'];
		$prenom = $_POST['prenom'];
		$mail = $_POST['mail'];
		$passe = $_POST['passe'];
		 
		$passe_hache = sha1($_POST['passe']);
		
		$req = $bdd->prepare('INSERT INTO compte(IDclient, nom, prenom, mail, passe) VALUES("", $nom, $prenom, $mail, $passe)');
		$req->execute(array(
			'nom' => $nom,
			'prenom' => $prenom,
			'passe' => $passe_hache,
			'mail' => $mail));			
	?>

Sauf que ma base ne se complete pas, dommage ...
 

LudoTools

Expert
'lut...

Normal que la BdD ne se complète pas... il faudrait (absolument) revoir la syntaxe PDO...
et aussi penser (pour faciliter la lecture) à différencier les variables saisies de celles transmises et/ou des noms de champs...
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 134
Messages
6 718 059
Membres
1 586 394
Dernier membre
Manoushk
Partager cette page
Haut