Erreur requête MySQL
Posté : 14 nov. 2010, 13:46
J'ai un petit problème, que je n'arrive pas à résoudre.
En fait je voudrais avant inscription d'un nouveau pseudo dans une base de donnée, vérifier que celui-ci est libre.
Petit pépin, lorsque j'ouvre ma base et tente de vérifier que parmi tous les pseudo existants, aucuns n'est égal à celui entré par l'utilisateur, il m'affiche un message d'erreur tel celui-ci:
J’espère que vous pourrez m'aider à trouver l'erreur ..
Et là voici la partie html .. sans importance car ça je pense ne pas trop y avoir fais d'erreurs.
En fait je voudrais avant inscription d'un nouveau pseudo dans une base de donnée, vérifier que celui-ci est libre.
Petit pépin, lorsque j'ouvre ma base et tente de vérifier que parmi tous les pseudo existants, aucuns n'est égal à celui entré par l'utilisateur, il m'affiche un message d'erreur tel celui-ci:
Avec un petit "or die(print_r($bdd->errorInfo()))" le message devient:Fatal error: Call to a member function execute() on a non-object in E:\wamp\www\PHP Test\test.php on line 14
Je vous ai donc copié ici l'entité de mon code.Array ( [0] => 42000 [1] => 1064 [2] => 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 '?' at line 1 ) 1
J’espère que vous pourrez m'aider à trouver l'erreur ..
Code : Tout sélectionner
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$Pseudo=$_POST['Pseudo'];
$disp=0;
//L'ERREUR SE TROUVE ICI
$reponse = $bdd->query('SELECT Nom FROM inscription WHERE Nom=?');
$req->execute(array($_POST['Pseudo']));
while ($donnees = $reponse->fetch())
{
$disp = $disp + 1;
}
if ($disp = 0)
{
$req = $bdd->prepare('INSERT INTO inscription(Nom) VALUES(:Nom)');
$req->execute(array(
'Nom' => $Pseudo
));
}
$reponse->closeCursor();
}
?>
Code : Tout sélectionner
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Bienvenue sur mon site !</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<form method="POST" action="test.php">
<span> Pseudo:<span/><br/>
<input type="text" name="Pseudo"/><br/>
<input type="reset" name="Reset" />
<input type="submit" name="Inscription" value="Inscription" /><br/>
<?php
if ($disp = 0)
{
echo 'Inscription validée';
}
else
{
echo 'Pseudo déjà utilisé';
}
?>
</form>
</body>
</html>