jueves, 7 de febrero de 2008

Una clase en PHP para conectar con MySQL


A medida que utilizamos nuestra base de datos MySQL sobre todo cuando programamos a medida nuestras propias aplicaciones vamos viendo como refinar el código y hacerlo más entendible para futuras mejoras, una forma de organizar un poco el código para nuestras conexiones frecuentes es utilizando la programación orientada a objetos creando una clase propia con un código más transparente sobre todo si nos olvidamos que es lo que hicimos cuando creamos determinado proyecto.
esta class en PHP muestra un uso típico que haríamos sobre la base de datos: conectar, consultar y cerrar respectivamente,
Breve explicación:
La función conectar recibe la "string connection" con los datos de nuestra base a través de las variables $dbase,$host,$user,$pass a las cuales le debemos asignar la información correspondiente a nuestra base de datos
luego desde nuestro script "llamamos" a la clase para luego pasarle nuestro query o consulta, y finalmente cerramos la base
El código:
Esta clase la guardamos en un directorio seguro con el nombre mysql.class.php

<?php

// clase para consultas mysql por https://www.facebook.com/tallerdescripts

class DBase {
var $conectar;
var $cerrar;
var $consultar;

function conectar ($dbase='nombre_base_datos',$host='localhost',$user='usuario',$pass='clave'){
$this -> conectar = @mysql_connect($host,$user,$pass);
mysql_select_db($dbase,$this->conectar);
}

function cerrar () {
$this -> cerrar = mysql_close($this -> conectar);
}

function consultar ($sql) {
$this -> consultar = mysql_query($sql);
return ($this -> consultar);
}

}//End Class

// Instancia y apertura db
$SQL = new DBase;//instanciar
$SQL -> conectar();

?>

Luego para usarla desde nuestra aplicación hacemos lo siguiente:
nuestro_script.php

<?php
require_once ('mysql.class.php');
$query = "
SELECT * FROM mi_tabla
";
// generamos una consulta
$consulta = $SQL -> consultar($query);
$SQL -> cerrar();
?>




Reacciones:

2 comentarios:

Pablo [directorio Yeap] dijo...

Amigo: no debes permitir que existan multiples instancias de un objeto que maneja bases de datos.

Busca sobre patron de diseño Singleton que es eso lo que debes usar.

Suerte y a ver si te enlistas en mi directorio web :)

Daniel dijo...

Gracias Pablo por tu aporte!,en la próxima entrada incluiré un informe sobre el patrón Singleton, asi lo compartimos con los demás colegas un abrazo!