<?
// Module de gestion des bases de données MySql et Sybase
// Ecrit par Sébastien DIAZ
// Distribue sous license GPL
if (! defined("DB"))
{
define("DB",1);
class db
{
var $host; // Adresse du serveur de base de données
var $port; // Port du serveur de base de données
var $database; // Nom de la base
var $login; // Login de la base
var $password; // Mot de passe de la base
var $row; // Pointeur sur ligne en cours d'une requête
var $result; // Pointeur sur le resultat d'une requête
var $id; // Pointeur sur id de connection
var $type; // Type de base (mysql, sybase ...)
function db($h, $p, $d, $l, $pw, $t)
// Constructeur
{
$this->host=$h;
$this->port=$p;
$this->database=$d;
$this->login=$l;
$this->password=$pw;
$this->type=$t;
}
function Connect()
// Connection a la base de données
{
if($this->type == 'mysql')
{
$this->id=mysql_connect($this->host.':'.$this->port, $this->login, $this->password)
or die ("Impossible de se connecter au serveur Mysql");
mysql_select_db($this->database)
or die ("Impossible de se connecter a la base de donnees : ".$this->database);
}
else if ($this->type == 'sybase')
{
$this->id=sybase_connect($this->host, $this->login, $this->password)
or die ("Impossible de se connecter au serveur Sybase");
sybase_select_db($this->database, $this->id)
or die ("Impossible de se connecter a la base de donnaes : ".$this->database);
}
}
function Query($sql)
// Exécute une requête
{
if($this->type == 'mysql') $this->result=mysql_query($sql, $this->id)
or die("La requete a echouee");
else if ($this->type == 'sybase') $this->result=sybase_query($sql, $this->id)
or die("La requête a echouee");
}
function Fetch()
// Lit la ligne suivante
{
if($this->type == 'mysql')
{
if($this->row = @mysql_fetch_array($this->result) ) return true;
return false;
}
else if ($this->type == 'sybase')
{
if($this->row = @sybase_fetch_array($this->result) ) return true;
return false;
}
}
function FetchObject()
// Lit la ligne suivante dans un objet
{
if($this->type == 'mysql')
{
if($this->row = @mysql_fetch_object($this->result) ) return true;
return false;
}
else if ($this->type == 'sybase')
{
if($this->row = @sybase_fetch_object($this->result) ) return true;
return false;
}
}
function Free()
// Libère la mémoire occupée par le résultat
{
if($this->type == 'mysql')
{
mysql_free_result($this->result);
}
else if ($this->type == 'sybase')
{
sybase_free_result($this->result);
}
}
function Close()
// Ferme la connection à la base de données
{
if($this->type == 'mysql') mysql_close($this->id);
else if ($this->type == 'sybase') sybase_close($this->id);
}
function NbrRows()
// Renvoi le nombre de lignes d'un requête SELECT
{
if($this->type == 'mysql') return mysql_num_rows($this->result);
else if ($this->type == 'sybase') return sybase_num_rows();
}
function NbrAffect()
// Renvoi le nombre de lignes affectées par une INSERT, UPDATE ou DELETE
{
if($this->type == 'mysql') return mysql_affected_rows($this->id);
else if ($this->type == 'sybase') return sybase_affected_rows($this->id);
}
}
}
?>