"Fatal Error" : Tout vas exploser ?

Petit nouveau ! | 8 Messages

11 sept. 2010, 19:41

Bonjour, amis codeur !
Je vous colicite en ce jour, car, j'ai une erreur plus qu'incomprehensible (Ca existe ? :P ), dans mon code pour le profil du membre.
Fatal error: Call to a member function fetch() on a non-object in C:\wamp\www\*******\profil.php on line 29
Je ne vais pas vous mettre tout mon code, parce que sinon, vive les 100 ligne :D Je vais juste mettre le code ou je traite les informations que je veux afficher :
<?php
if(isset($_SESSION['Pseudo']))
{ 
?>
<?php
try
{
	$bdd = new PDO('mysql:host=localhost;dbname=mon-mammou', 'root', '');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}

$reponses = $bdd->query('SELECT * FROM forum_topic WHERE Pseudo=' . $_GET['p']);

while ($donnees = $reponses->fetch())
{
?>
Pseudo : <?php echo $donnees['Pseudo']; ?>
Mail : <?php echo $donnees['mail']; ?>
Date d'inscription : <?php echo $donnees['date_inscrip']; ?>
Date de naissance : <?php echo $donnees['date_de_naissance']; ?>
<?php
}

$reponses->closeCursor(); // Termine le traitement de la requête

?>
<?php 
}
else
{ 
     echo 'Page interdite aux visiteurs.';
} 
?>
Ma ligne 30 équivaut a la ligne de While, si vous voyer ;) Inutile de préciser que j'utilise l'URL pour ceci ^^ : http://www.monsite.com/profile.php?p=Grey pour l’exemple ;)
Merci beaucoup !

ViPHP
ViPHP | 5462 Messages

11 sept. 2010, 20:14

c'est que ta requête n'a pas marché, il faut activé les erreur pour PDO : http://php.net/manual/fr/pdo.error-handling.php

Petit nouveau ! | 8 Messages

11 sept. 2010, 20:17

Merci pour l'astuce ^^ Et voici ce que ça donne, après la gestion des erreurs :
PDO::errorCode():
Notice: Undefined variable: dbh in C:\wamp\www\******\profil.php on line 30

Fatal error: Call to a member function errorCode() on a non-object in C:\wamp\www\******\profil.php on line 30
EDIt : En fait, non, c'étais mon code pour l'erreur qui était erroné ^^ J'ai réussi a faire parlé mon script, mais tout ce que j'ai pus en tirer, c'est le code d'erreur n° "42S22" :P Mais ne parlant pas les messages codé, je ne comprends pas du tout ... :)
Modifié en dernier par Grey le 11 sept. 2010, 20:25, modifié 1 fois.

ViPHP
ViPHP | 5462 Messages

11 sept. 2010, 20:23

toi c'est $bdd pas $dbh

Petit nouveau ! | 8 Messages

11 sept. 2010, 20:26

Oui, j'ai vu après x) Le code d'erreur est le suivant : 42S22

ViPHP
ViPHP | 5462 Messages

11 sept. 2010, 20:28

:?:

y'a pas de message ? juste un code tout seul ?

Petit nouveau ! | 8 Messages

11 sept. 2010, 20:30

Avec le code
echo "\nPDO::errorCode(): ";
print $dbh->errorCode();
Ouais :P

Mais j'ai réussi a en savoir plus :D :
PDO::errorInfo(): Array ( [0] => 42S22 [1] => 1054 [2] => Unknown column 'Grey' in 'where clause' )

ViPHP
ViPHP | 5462 Messages

11 sept. 2010, 20:32

ta pas besion de faire ca, avec le lien que je t'ai donnée, ca se fais tout seul

sinon ton erreur vient du fait que t'a pas mis de quotes

WHERE Pseudo = Grey

au lieu de

WHERE Pseudo = 'Grey'


plusieurs personne peuvent avoir le même pseudo ?

Petit nouveau ! | 8 Messages

11 sept. 2010, 20:34

WIII ! Gagner ! Champion du monde ! Merci beaucoup ! :mrgreen: