class tsDatabase {
private $_dbhost;
private $_dbname;
private $_dbuser;
private $_dbpass;
private $_dbpersist;
private $_querys = 0;
private static $_dblink = null;
// ESTE ES EL CONSTRUCTOR
// CONECTA Y SELECCIONA UNA BASE DE DATOS
// INPUT: VOID
// OUTPUT: $dblink
function tsDatabase(){
// DEFINICION DE VARIABLES
$this->_dbhost = db_host;
$this->_dbname = db_name;
$this->_dbuser = db_user;
$this->_dbpass = db_pass;
$this->_db_persist = db_persist;
// CONECTAR
$this->_dblink = $this->connect();
return $this->_dblink;
}
// METODO PARA SELECCIONAR Y CONECTAR A LA BASE DE DATOS
// INPUT:
// OUTPUT: instancia de la clase
public static function getInstance(){
static $database;
if( !is_a($database, 'tsDatabase') ){ // Backwards compatibility
if( is_a($tsdb, 'tsDatabase') ){ $database = $tsdb;
}
// Instantiate
else{
$database = new tsDatabase();
$tsdb = $database;
}
}
return $database;
}
// METODO PARA CONECTAR A LA BASE DE DATOS
// INPUT: void
// OUTPUT: $db_link
function connect() {
// CONEXION PERSISTENTE?
if($this->_db_persist
) $db_link = mysql_pconnect($this->_dbhost
, $this->_dbuser
, $this->_dbpass
); else $db_link = mysql_connect($this->_dbhost
, $this->_dbuser
, $this->_dbpass
); // NO SE PUDO CONECTAR?
// SELECCIONAR BASE DE DATOS
// ASIGNAR CONDIFICACION
// REGRESAR LA CONEXCION
return $db_link;
}
// METODO PARA HACER UNA CONSULTA
// INPUT: $query
// OUTPUT: $result
function query($q){
$this->_querys++;
// HACIENDO CONSULTA Y RETORNANDO
}
// METODO PARA HACER UN SELECT
// INPUT:
// $table | NOMBRE DE LA TABLA
// $fields | CAMPOS A SELECCIONAR DE LA TABLA
// $where | CONDICION DE LA CONSULTA
// $order | ORDEN DE LOS RESULTADOS
// $limit | LIMITE DE RESULTADOS
// OUTPUT: $result
function select($table, $fields, $where = NULL, $order = NULL, $limit = NULL){
$this->querys++;
// CREANDO LA CONSULTA
$q = 'SELECT '.$fields.' FROM '.$table;
if($where) $q .= ' WHERE '.$where;
if($order) $q .= ' ORDER BY '.$order;
if($limit) $q .= ' LIMIT '.$limit;
// HACIENDO CONSULTA Y RETORNANDO
}
// METODO PARA HACER UN UPDATE
// INPUT:
// $table | NOMBRE DE LA TABLA
// $pairs | CAMPOS Y VALORES A ACTUALIZAR
// $where | CONDICION DE LA CONSULTA
// OUTPUT: status
function update($table, $pairs, $where){
$this->querys++;
// DESCOMPONER CAMPOS DE UN ARRAY
else $fields = $pairs;
// ARMANDO CONSULTA
$q = 'UPDATE '.$table.' SET '.$fields.' WHERE '.$where;
// REALIZANDO CONSULTA
// RETORNANDO ESTADO
if($result) return true;
else return false;
}
// METODO PARA HACER UN REPLACE
// INPUT:
// $table | NOMBRE DE LA TABLA
// $fields | CAMPOS A REEMPLAZAR
// $values | VALORES A REEMPLAZAR
// OUTPUT: status
function replace($table, $fields, $values){
$this->querys++;
// ARMANDO CONSULTA
$q = "REPLACE INTO $table ($fields) VALUES ($values)";
// REALIZANDO CONSULTA
// RETORNANDO ESTADO
if($result) return true;
else return false;
}
// METODO PARA HACER UN INSERT
// INPUT:
// $table | NOMBRE DE LA TABLA
// $fields | CAMPOS
// $values | VALORES
// OUTPUT: status
function insert($table, $fields, $values){
$this->querys++;
// ARMANDO CONSULTA
$q = 'INSERT INTO '.$table.' ('.$fields.') VALUES ('.$values.')';
// REALIZANDO CONSULTA
// RETORNANDO ESTADO
if($result) return true;
else return false;
}
// METODO PARA HACER UN DELETE
// INPUT:
// $table | NOMBRE DE LA TABLA
// $where | CONDICION
// OUTPUT: status
function delete($table, $where){
$this->querys++;
// ARMANDO CONSULTA
$q = 'DELETE FROM '.$table.' WHERE '.$where;
// REALIZANDO CONSULTA
// RETORNANDO ESTADO
if($result) return true;
else return false;
}
// METODO PARA HACER UNA CONSULTA Y OBTENER OBJETOS
// INPUT:
// $table | NOMBRE DE LA TABLA
// $fields | CAMPOS A SELECCIONAR DE LA TABLA
// $where | CONDICION DE LA CONSULTA
// $order | ORDEN DE LOS RESULTADOS
// $limit | LIMITE DE RESULTADOS
// OUTPUT: $result
function data($table, $fields, $where =NULL, $order = NULL, $limit = NULL){
$this->querys++;
// CREANDO LA CONSULTA
$q = 'SELECT '.$fields.' FROM '.$table;
if($where) $q .= ' WHERE '.$where;
if($order) $q .= ' ORDER BY '.$order;
if($limit) $q .= ' LIMIT '.$limit;
// HACIENDO CONSULTA
// CREANDO Y RETORNANDO OBJETOS
else return false;
}
// METODO PARA CREAR OBJETOS DESDE UNA CONSULTA
// INPUT: $result
// OUTPUT: $objs
function fetch_objects($result){
return $objs;
}
// METODO PARA CREAR ARRAY DESDE UNA CONSULTA
// INPUT: $result
// OUTPUT: array
function fetch_assoc($result){
}
// METODO PARA CREAR ARRAY DESDE UNA CONSULTA
// INPUT: $result
// OUTPUT: array
function fetch_array($result,$array = NULL){
return $array;
}
// METODO PARA OBTENER EL VALOR DE UNA ROW
// INPUT: $result
// OUTPUT: array
function fetch_row($result){
}
// METODO PARA CONTAR EL NUMERO DE RESULTADOS
// INPUT: $result
// OUTPUT: num_rows
function num_rows($result){
}
// METODO PARA LIBERAR MEMORIA
// INPUT: $result
// OUTPUT: void
function free($result = 0){
}
// METODO PARA RETORNAR EL ULTIMO ID DE UN INSERT
// INPUT: void
// OUTPUT: status
function insert_id(){
$this->querys++;
}
// METODO PARA RETORNAR LOS ERRORES
// INPUT: void
// OUTPUT: status
function error(){
}
}