Clase PHP para conectarse a base de datos

Para facilitar el manejo de conecciones con las base de datos con PHP, existen las denominadas clases que bajo el concepto de orientado a objetos estas pueden tener ciertos atributos y funciones.

Usaremos unas clase para PostgreSQL y otra para MySQL, con sus respectivas funciones PHP para las llamadas, son motores de base de datos distintos pero la diferencia en sintaxis entre ellas es casi nada.

¿Que harémos?

  1. Crear Clase PostgreSQL
  2. Crear Clase Mysql
  3. Como declarar las clases u objetos

1. Clase para PostgreSQL

<?php class bd{
 	private $conexion;
 	private $consulta;
 	private $host     = 'localhost';
 	private $usuario  = 'usuario';
 	private $password = 'password';
 	private $basedato = 'basedato';
 	private $puerto   = '5432';

        function __construct(){
 		if(!isset($this->conexion)){
			$this->conexion)){
			$this->conexion = (pg_connect('host='.$this->host.' port='.$this->puerto.' dbname='.$this->basedato.' user='.$this->usuario.' password='.$this->password));
		}
	}
	function consulta($consulta){
		$resultado = pg_query($this->conexion,$consulta);
		if($resultado){
			return $resultado;
		}else return false;
	}
	function extraer($consulta){
		return pg_fetch_array($consulta);
	}
	function num_filas($consulta){
		return pg_num_rows($consulta);
	}
	function extrae_objeto($consulta){
		return pg_fetch_object($consulta);
	}
	function cancelar($consulta){
		return pg_close($consulta);
	}
}
?>

2. Clase para MySQL

<?php class bd{
 	private $conexion;
 	private $consulta;
 	var $host     = 'localhost';
 	var $usuario  = 'usuario';
 	var $password = 'password';
 	var $basedato = 'basedatos';

        function __construct(){
 		if(!isset($this->conexion)){
			$this->conexion = (mysql_connect($this->host,$this->usuario,$this->password));
			mysql_select_db($this->basedato,$this->conexion);
		}
	}
	function consulta($consulta){
		$resultado = mysql_query($consulta,$this->conexion);
		if($resultado){
			return $resultado;
		}else return false;
	}
	function extraer($consulta){
		return mysql_fetch_array($consulta);
	}
	function num_filas($consulta){
		return mysql_num_rows($consulta);
	}
	function extrae_objeto($consulta){
		return mysql_fetch_object($consulta);
	}
	function cancelar($consulta){
		return mysql_close($consulta);
}
?>

3. Declarar una clase u objeto

<?php
$con = new bd();
?>

Para realizar una consulta SQL

<?php
$con = new bd();
$sql = $con->consulta("SELECT * FROM productos");
$con->extraer($sql);
?>

Conclusión

Usar estos métodos nos puede servir mucho cuando tengamos que migrar de un motor de base de datos a otro, ya que no va hacer necesario cambiar todas las funciones PHP de consultas y conecciones.

Existen otras alternativas como el patrón Singleton para PHP que es similar a lo que hemos hecho y otras más robustas como ADOdb

Leave a Comment


*


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackbacks and Pingbacks: