Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Erreur a la fermeture de connexion av ec PEAR DB (not valid MySQL-Link ressource)

2 réponses
Avatar
titouille
Bonjour tout le monde !!!

Voilà, j'ai un problème de déconnexion...

J'ai une méthode "connect" appartenant à une classe pearDBLayer. Cette
méthode me génère une connexion à une base mySQL.

function connect ()
{
$options = array
(
'debug' => 2
);

$this->_db = &DB::connect ($this->_dsn, $options);
if (DB::isError ($this->_db))
{
$this->_log->write (
array ("PearDBLayer.php", "connect", 55,
"Some problem seems to be appears when try
to connect to the database.", $s));
}
}

donc, la variable _db de ma classe obtient une connexion à la base. Je
peux aisement exécuter une requête.
Le problème se situe au niveau de la déconnexion.

J'ai une méthode "disconnect" qui permet la déconnexion... chacune de
mes méthodes de requête fait une connexion, exécute une requête, et
ferme ensuite la connexion.

function disconnect ()
{
$this->_db->disconnect();
}


seulement, je me retrouve avec l'avertissement suivant lors de l'exécution :

Warning: mysql_close(): supplied argument is not a valid MySQL-Link
resource in
c:\dev\webserver\easyphp17\www\MDCRemoting\classes\pear\DB\mysql.php on
line 182


J'ai fait plusieurs recherches au niveau des newsGroups, tombant même
sur un post ou une personne expliquait qu'il avait ce problème en
utilisant les méthodes standard mySQL, et un autre lui répondait qu'en
utilisant PEAR:DB, il n'aurai pas ce genre de problèmes... alors bon,
j'aimerai comprendre...

J'ai fait un "print_r" de mon objet $this->_db et ce dernier est valide,
la connexion est correcte... donc je vois encore moins ou se situe le
problème... :(

Si quelqu'un à une réponse à me fournir, je lui serai reconnaissant :)


A bientot !!!


Thierry

2 réponses

Avatar
Xavier
titouille disait le 22/07/2004 10:57:

Bonjour tout le monde !!!

Voilà, j'ai un problème de déconnexion...

J'ai une méthode "connect" appartenant à une classe pearDBLayer. Cette
méthode me génère une connexion à une base mySQL.

J'ai une méthode "disconnect" qui permet la déconnexion... chacune de
mes méthodes de requête fait une connexion, exécute une requête, et
ferme ensuite la connexion.



Salut,
tu devrait peut etre verifier ta version de Pear::DB et eventuellement
upgrader si un peu "vieille".
A tu testé ton code sur un autre serveur que Easyphp ?

en tout cas, le code suivant fonctionne impeccablement sur pear::DB 1.6.2



<?php

require_once 'DB.php';

class DB_Wrapper
{

var $dsn = 'mysql://usr:/base';

var $_db;

var $options = array('debug'=>2);

function DB_Wrapper()
{
$this->connect();
}

function connect()
{
$this->_db =& DB::Connect($this->dsn, $this->options);
if (DB::isError($this->_db)) {
die($this->_db->getMessage());
}
}

function query()
{
$sql = "SELECT id FROM table LIMIT 5";
$res = $this->_db->getAll($sql);

print_r($res);
}

function disconnect()
{
$this->_db->disconnect();
}

}

$w =& new DB_Wrapper();
$w->query();
$w->disconnect();

?>

Avatar
titi2027
C'est juste.

J'avais eu des problèmes avec la dernière version et sqlite... et
vala-t-y pas que maintenant que je me remet sur du sql, ça recommence
:)

En tout cas, merci beaucoup pour avoir testé !


Cordialement

Thierry