[PHP] PDO : deux instanciations impossibles ?

Fermé
martin - 2 nov. 2010 à 15:08
 martin - 3 nov. 2010 à 13:44
Bonjour,

Ma question est assez simple : je n'arrive pas à instancier deux objets PDO les uns après les autres dans une même page (peut-être est-ce impossible, je n'en sait rien).

Voici le message d'erreur que j'obtiens :
Erreur N°2002 : SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)


Voici le code de ma fonction de connexion, "fonctions_db.php" :
<?
function connect_db()
{
try
	{
		$cnx = new PDO(....);
	}
	 
	catch(PDOException $e)
	{
		die('--> Erreur N°'.$e->getCode().' : '.$e->getMessage());
	};
	return $cnx;
}
?>

Voici le code de la page qui me pose problème.
<?
require_once 'fonctions_db.php';
$connexion = connect_db();
[...]
$connexion = NULL;
?>

<?
$connexion = connect_db(); //ici intervient le problème !
[...]
$connexion = NULL;
?>


Quelqu'un saurait-il résoudre ce problème, ou proposer une solution alternative pour obtenir le même résultat ? Je tiens à préciser qu'à chaque fois, c'est à la même base de données que je cherche à me connecter.

A voir également:

1 réponse

Je viens de trouver la réponse à ma propre question : comme les connexions sont des connexions sur la même base, il suffit de se connecter une seule fois au début du script, et de fermer la connexion une seule fois en fin de script.

<?
require_once 'fonctions_db.php';
$connexion = connect_db();
[...]
?>
// code html
<?
[...]
$connexion = NULL;
?>
0