PHP et Mysql/mysql_query et php

Résolu/Fermé
keurdange Messages postés 720 Date d'inscription lundi 8 novembre 2010 Statut Membre Dernière intervention 13 juillet 2016 - Modifié par keurdange le 18/02/2012 à 14:04
keurdange Messages postés 720 Date d'inscription lundi 8 novembre 2010 Statut Membre Dernière intervention 13 juillet 2016 - 18 févr. 2012 à 16:43
Bonjour,

Je suis entrain de programmé un site dynamique et j'aimerais vérifier à l'inscription, et grâce au formulaire, qu'un email déjà enregistré ne puisse se réinscrire à nouveau. Mais, il existe un problème au niveau de mysql_query. En effet, je ne sais pas comment utilisé l'email saisi dans la requête. Ci-dessous, vous retrouverez ce que j'ai essayé comme code mais ça me donne des erreurs du type You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@yahoo.fr IN (SELECT email FROM info_membres)' at line 1

Voici mon code

$bdd_1=mysql_query('SELECT email FROM info_membres WHERE ' .$_POST['email']. ' IN (SELECT email FROM info_membres)') or die(mysql_error());

Je m'en remet à la communauté de commentcamarche. :(

Merci d'avance. :D



Dieu n'a fait qu'ébaucher l'homme, c'est sur terre que chacun se crèe

1 réponse

MastercroW Messages postés 1094 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 31 mai 2019 163
18 févr. 2012 à 14:24
Bonjour,

Tout d'abord je te conseil d'utiliser PDO, c'est bien plus sécurisé et pas moins compliquer.
Et voila ce que ça donne pour ton problème en PHP-PDO.
<?php
/* Connexion Base de donnée en PDO */
 try //Test la connexion
{
	$bdd = new PDO('mysql:host=localhost;dbname=monsters','root',''); //connexion
}
 catch (Exception $e)
{
	die('Erreur : '.$e->getMessage()); // Si la connexion échoue, on renvoie un message d'erreur au lieu d'afficher le code php
}
$bdd->exec("SET CHARACTER SET utf8");


/* Étape de la selection de l'email en base de donnée */

	$req = $bdd->prepare('SELECT email FROM info_membres WHERE email = ?');
	$req ->execute(array($_POST['email']));
	$resultats = $req ->fetch();
		
 if ($_POST['email'] == $resultats['email'])
{
echo 'Adresse e-mail déjà utilisé';
}

 else 
{
// Etape suivante	
}
?>
1
keurdange Messages postés 720 Date d'inscription lundi 8 novembre 2010 Statut Membre Dernière intervention 13 juillet 2016 231
Modifié par keurdange le 18/02/2012 à 16:46
Merci, ça marche à merveille. mais, il y a un truc, dans le code, que je ne comprend pas : $resultat=$req->fetch() lit les entrées ligne par ligne et créé un nouveau tableau??? quelle est l'importance de mettre ['email'] dans $resultat['email']
0