PHP es seguramente el lenguaje más usado para el desarrollo de aplicaciones web, y en la mayoría de las ocasiones es utilizado junto al motor de base de datos MySQL.
En este artículo crearemos una clase que se encargará de establecer una conexión con MySQL, insertar, modificar, eliminar y obtener registros.
A grandes rasgos, la clase se compone de un constructor, un destructor y los métodos que trabajan, en este caso, sobre una misma tabla. El ejemplo es muy simple, pero para empezar a trabajar con php y MySQL es suficiente.
Primero veamos la clase:
<?php
class socios_DAL {
var $conn;
var $db;
var $ultimoComando;
function __construct($dbName, $server, $user, $passwd) {
if($dbName !== "" && $server !== "" && $user !== "" && $passwd !== "") {
$this->conn = mysql_connect($server, $user, $passwd) or die("Error al intentar establecer la conexión.");
if(isset($this->conn)) {
$db = mysql_select_db($dbName, $this->conn) or die("Error al intentar seleccionar la base de datos.");
$this->ultimoComando = array();
}
}
}
function __destruct() {
if(isset($this->conn)) {
mysql_close($this->conn);
}
}
function obtenerUltimoComando() {
return $this->ultimoComando;
}
function insertarSocio($num, $nombre, $apellido, $domicilio) {
if($num !== "" && $nombre !== "" && $apellido !== "" & $domicilio !== "") {
$sql = "INSERT INTO `tblSocios` (`num`, `nombre`, `apellido`, `domicilio`) VALUES ('$num', '$nombre', '$apellido', '$domicilio')";
if(mysql_query($sql, $this->conn)) {
$this->ultimoComando = array('comando' => $sql, 'resultado' => 'ok');
return true;
} else {
if(mysql_errno() || mysql_error()) {
$this->ultimoComando = array('comando' => $sql, 'resultado' => "Error: ".mysql_errno().": ".mysql_error());
} else {
$this->ultimoComando = array('comando' => $sql, 'resultado' => 'error');
}
return false;
}
}
}
function eliminarSocio($num) {
if($num !== "") {
$sql = "DELETE FROM `tblSocios` WHERE `num` = '$num' LIMIT 1";
if(mysql_query($sql, $this->conn)) {
$this->ultimoComando = array('comando' => $sql, 'resultado' => 'ok');
return true;
} else {
if(mysql_errno() || mysql_error()) {
$this->ultimoComando = array('comando' => $sql, 'resultado' => "Error: ".mysql_errno().": ".mysql_error());
} else {
$this->ultimoComando = array('comando' => $sql, 'resultado' => 'error');
}
return false;
}
}
}
function modificarSocio($num, $nombre, $apellido, $domicilio) {
if($num !== "" && $nombre !== "" && $apellido !== "" & $domicilio !== "") {
$sql = "UPDATE `tblSocios` SET `nombre` = '$nombre', `apellido` = '$apellido', `domicilio` = '$domicilio' WHERE `num` = '$num' LIMIT 1";
if(mysql_query($sql, $this->conn)) {
$this->ultimoComando = array('comando' => $sql, 'resultado' => 'ok');
return true;
} else {
if(mysql_errno() || mysql_error()) {
$this->ultimoComando = array('comando' => $sql, 'resultado' => "Error: ".mysql_errno().": ".mysql_error());
} else {
$this->ultimoComando = array('comando' => $sql, 'resultado' => 'error');
}
return false;
}
}
}
function obtenerSocios() {
$resultado = array();
$sql = "SELECT * FROM `tblSocios` ORDER BY `apellido`, `nombre`";
if($socios = mysql_query($sql, $this->conn)) {
$indice = 0;
while($s = mysql_fetch_array($socios)) {
$resultado[$indice] = $s;
$idice++;
}
mysql_free_result($socios);
$ultimoComando = array('comando' => $sql, 'resultado' => 'ok');
} else {
if(mysql_errno() || mysql_error()) {
$this->ultimoComando = array('comando' => $sql, 'resultado' => "Error: ".mysql_errno().": ".mysql_error());
} else {
$this->ultimoComando = array('comando' => $sql, 'resultado' => 'error');
}
}
return $resultado;
}
function obtenerSocio($num) {
if($num !== "") {
$sql = "SELECT * FROM `tblSocios` WHERE `num` = '$num' LIMIT 1";
if($socio = mysql_query($sql, $this->conn)) {
$ultimoComando = array('comando' => $sql, 'resultado' => 'ok');
return mysql_fetch_array($socio);
} else {
if(mysql_errno() || mysql_error()) {
$this->ultimoComando = array('comando' => $sql, 'resultado' => "Error: ".mysql_errno().": ".mysql_error());
} else {
$this->ultimoComando = array('comando' => $sql, 'resultado' => 'error');
}
return null;
}
}
}
}
?>
Como se puede ver en el código, la conexión se establece en el constructor de la clase y se mantiene el enlace en la variable $conn, la cual se utilizará cada vez que se realice una consulta. También en este método se selecciona la base de datos que utilizaremos, y se guarda el enlace, aunque no lo utilizaremos por el momento.
Se puede destacar la cláusula die() que se encarga de detener la ejecución del script, en este caso no nos interesa que se siga ejecutándo nuestro código si no pudimos establecer una conexión a la base de datos o no se obtuvo acceso a la base deseada.
Luego tenemos el destructor que se encarga solamente de cerrar la conexión, ésto se hace para liberar recursos en el servidor, lo cual puede llegar a ahorrarnos varios dolores de cabeza si la carga del servidor es muy grande.
Finalmente tenemos las funciones que trabajan sobre los datos, de éstas funciones voy a explicar un poco lo que hacen, ya que el código es muy simple y asumo que tenemos conocimientos por lo menos básicos de lenguaje SQL.
Las funciones que trabajan con los datos están escritas de forma muy similar, y la principal diferencia entre una y otra es la sentencia SQL que se utilizará. Hemos incluido un manejo precario de errores, que nos permitirá saber por qué no se ejecutó una determinada consulta.
Finalmente tenemos que probarla por lo que les recomiendo que descarguen el código fuente desde este enlace, en el archivo encontrarán la clase, un script para probar nuestra clase, y un script para la creación de la base de datos. Éste último fue generado con phpMyAdmin, para quienes no lo conocen, es un front -end para MySQL escrito en php.
Si alguien desea aportar algo o hacer alguna consulta no duden en dejar un comentario o enviar un mensaje usando el formulario de contacto.
Descargar el ejemplo de conexión a MySQL con PHP (2.05 KB)
}