Mercurial > defr > DualBlog
comparison includes/class.dataaccess.php @ 54:d0b737b2b398
Utilisation de l'identifiant du lien MySQL
Cela permet de correctement gérer la situation où deux objets DataAccess
sont successivement crées pour accéder à des bases de données différentes.
Il n'est bien entendu pas necessaire de créer deux objets DataAccess pour
executer des requetes en parallèles sur la *même base de données*, les
identifiants de requetes qu'il est possible de passer aux fonctions
Query et GetRow sont là pour ca.
| author | Franck Deroche <webmaster@defr.org> | 
|---|---|
| date | Tue, 29 Jan 2008 11:58:49 +0100 | 
| parents | ec0c926a78a6 | 
| children | 0071e5744311 | 
   comparison
  equal
  deleted
  inserted
  replaced
| 53:ec0c926a78a6 | 54:d0b737b2b398 | 
|---|---|
| 2 class DataAccess { | 2 class DataAccess { | 
| 3 var $host; | 3 var $host; | 
| 4 var $user; | 4 var $user; | 
| 5 var $pass; | 5 var $pass; | 
| 6 var $db; | 6 var $db; | 
| 7 var $link; | |
| 7 var $connOpen; | 8 var $connOpen; | 
| 8 var $results; | 9 var $results; | 
| 9 var $queries; | 10 var $queries; | 
| 10 var $_nbQueries; | 11 var $_nbQueries; | 
| 11 | 12 | 
| 21 $this->Connect(); | 22 $this->Connect(); | 
| 22 } | 23 } | 
| 23 | 24 | 
| 24 function Connect() { | 25 function Connect() { | 
| 25 if($this->connOpen == 0) { | 26 if($this->connOpen == 0) { | 
| 26 mysql_connect($this->host, $this->user, $this->pass); | 27 $this->link = mysql_connect($this->host, $this->user, $this->pass); | 
| 27 mysql_select_db($this->db); | 28 mysql_select_db($this->db, $this->link); | 
| 28 } | 29 } | 
| 29 $this->connOpen++; | 30 $this->connOpen++; | 
| 30 } | 31 } | 
| 31 | 32 | 
| 32 function Query($query, $id=0) { | 33 function Query($query, $id=0) { | 
| 33 $this->_nbQueries++; | 34 $this->_nbQueries++; | 
| 34 $this->queries[$id]=$query; | 35 $this->queries[$id]=$query; | 
| 35 $this->Connect(); | 36 $this->Connect(); | 
| 36 $this->results[$id]=mysql_query($this->queries[$id]); | 37 $this->results[$id]=mysql_query($this->queries[$id], $this->link); | 
| 37 $this->Close(); | 38 $this->Close(); | 
| 38 if(@$num_rows=mysql_num_rows($this->results[$id])) | 39 if(@$num_rows=mysql_num_rows($this->results[$id])) | 
| 39 return $num_rows; | 40 return $num_rows; | 
| 40 return 0; | 41 return 0; | 
| 41 } | 42 } | 
| 55 } | 56 } | 
| 56 | 57 | 
| 57 function Close() { | 58 function Close() { | 
| 58 $this->connOpen--; | 59 $this->connOpen--; | 
| 59 if($this->connOpen == 0) { | 60 if($this->connOpen == 0) { | 
| 60 mysql_close(); | 61 mysql_close($this->link); | 
| 61 } | 62 } | 
| 62 } | 63 } | 
| 63 | 64 | 
| 64 function getNbQueries() { | 65 function getNbQueries() { | 
| 65 return $this->_nbQueries; | 66 return $this->_nbQueries; | 
