[PDO]Call to a member function prepare()

Résolu/Fermé
leptitjeune Messages postés 70 Date d'inscription mercredi 14 mai 2008 Statut Membre Dernière intervention 19 août 2010 - Modifié par leptitjeune le 31/03/2010 à 17:10
leptitjeune Messages postés 70 Date d'inscription mercredi 14 mai 2008 Statut Membre Dernière intervention 19 août 2010 - 2 avril 2010 à 22:01
Bonjour,

je suis en train de réaliser un site en PHP et j'utilise également PDO pour travailler avec une base de donner.

Le problème est que j'ai un message d'erreur qui s'affiche :
Fatal error: Call to a member function prepare() on a non-object in /home/users/00/16/f6/home/www/projet_2/includes/haut.php on line 73

Voici le code des lignes 73 à 81 :
  
try 
{ 
  
 $bdd = new PDO('mysql:host=xxxxxxx;dbname=xxxxxxxx',      
        xxxxxxx, xxxxxxxxxxxxxx); 
   
} 
catch (Exception $e) 
{ 

 die('Erreur : ' . $e->getMessage()); 

} 
   
$req1 = $bdd->prepare('INSERT INTO forum_whosonline(online_id, online_time, online_ip) VALUES(:id, :time, :ip)  
  ON DUPLICATE KEY UPDATE  
  online_time = :time , online_id = :id') or die(print_r($bdd->errorInfo()));  
    
$req1->execute(array(  
 'id' => $id,  
 'time' => time(),  
 'ip' => $ip  
 ));


Comment résoudre ce problème ?


Merci de votre aide

4 réponses

leptitjeune Messages postés 70 Date d'inscription mercredi 14 mai 2008 Statut Membre Dernière intervention 19 août 2010 14
2 avril 2010 à 22:01
Bonjour,
je viens enfin de comprendre d'où venait mon problème. :-°

j'ai créer une fonction pour me connecté à ma base de donnée sans avoir besoin de tout retapé :

<?php
function connexionbdd($bd_nom_bd)
{	
	
	//Définition des variables de connexion à la base de données
	$bd_nom_serveur='xxxx';
	$bd_login='xxxx';
	$bd_mot_de_passe='xxxxx';
	
	try
	{
	
		$bdd = new PDO('mysql:host='.$bd_nom_serveur.';dbname='.$bd_nom_bd, $bd_login, $bd_mot_de_passe);
	
	}
	catch(Exception $e)
	{
	
			die('Erreur : '.$e->getMessage());
	
	}

}?>


En fait, j'avais oublier de retourné la valeur de <?php $bdd ?> .

J'ai donc rajouté <?php return $bdd; ?> .

Comme quoi, il ne faut pas toujours cherché très loin.

Merci à tous de m'avoir aider à résoudre mon problème.
1