Erreur PHP PDO (Fatal error: Call to a member function query() on a non-object ...)

  • Auteur de la discussion Auteur de la discussion Eremes
  • Date de début Date de début
Nouveau WRInaute
Bonjour, j'ai essayé de faire une fonction PHP (ma première). Celle-ci permet de vérifier si la prochaine image existe, car la galerie d'image que je fais prend les images dans la base de données. Le script vérifie donc si l'id est vide ou pas, si c'est le cas il ajoute un tant que c'est vide, pour être sur de tomber sur une image.

Code:
// Début - Vérification de l'image suivante
function pageup($var)
{
	$var = $var + 1; // On regarde si l'image suivante existe
	
	$reponse = $bdd->query('SELECT id FROM pictures WHERE id = ' . $var) or die(print_r($bdd->errorInfo()));
	$donnees = $reponse->fetch();
	
	$reponse->closeCursor();
	
	$i = 0; // Initialisons i a 0

	while(empty($donnees['id'])) // La boucle continue tant que l'image n'existe pas
	{	
		while($i < 5) // Mais 5 essais max, sinon, on en déduit que c'est fini
		{
			$var = $var + 1; // On regarde en l'image suivante et on fait boucler
			
			$reponse = $bdd->query('SELECT id FROM pictures WHERE id = ' . $var) or die(print_r($bdd->errorInfo()));
			$donnees = $reponse->fetch();
			
			$reponse->closeCursor();
			
			$i++; // On incrémente i
		}
	}
	
	$var = $donnees['id']; // On donne a la variable l'id de la prochaine image existante
}		
// Fin - Vérification de l'image suivante

Voilà la fonction, il y a un problème mais je ne vois pas ce que c'est, l'erreur affichée est Fatal error: Call to a member function query() on a non-object in /webuser/Eremes/eremes/base.php on line 27.

La ligne 27 étant la ligne 6 du c/c.

Merci si vous pouvez m'aider :)
 
WRInaute discret
Il semble que ce soit ta variable $bdd, donc ta connexion qui ne soit pas bonne. Montre nous le code ou tu te connecte a la bdd.
 
Nouveau WRInaute
Code:
// Début - Connexion à la base de données
try
{
	$bdd = new PDO('mysql:host=host;dbname=dbname', 'user', 'password'); // Essai de connexion
}
catch (Exception $e)
{
        die('Erreur : ' . $e->getMessage()); // Si échoué, message d'erreur
}
// Fin - Connexion à la base de données

Voilà.

(Pourtant, avant que j'ai mis la fonction dans la page, ça prenait correctement donc je pense pas que ça soit du a ça :( )
 
WRInaute discret
Ok et le script de connexion est bien disponible pour ta fonction ( include )?
Tu n'as pas entre temps mis autre chose dans ta variable $bdd ?
 
Nouveau WRInaute
Le script de connexion est sur la même page que la fonction, mais il est pas dedans non :(

J'ai fait un global $bdd; au début de la fonction, il n'y a plus l'erreur, mais lorsque je fais suivant ça trouve pas l'image :)

Mais ça doit venir de la fonction ça, je vais bien trouver. Merci !
 
Discussions similaires
Haut