$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 :)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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();
?>
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:pass@localhost/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();
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();
?>
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
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
:)