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?
- Crear Clase PostgreSQL
- Crear Clase Mysql
- 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
![IMG_0111[1] A photo on Flickr](http://farm8.staticflickr.com/7199/6897172785_2232a9c258_m.jpg)
![IMG_0106[1] A photo on Flickr](http://farm8.staticflickr.com/7044/6897167635_0c19650788_m.jpg)
![IMG_0105[1] A photo on Flickr](http://farm8.staticflickr.com/7191/6897162149_9e22551672_m.jpg)
![IMG_0104[1] A photo on Flickr](http://farm8.staticflickr.com/7064/6897086357_277607aff4_m.jpg)
1 Comments.