Cargando



Procedimientos Almacenador con parámetros desde PHP

Los procedimientos almacenados son muy útiles para encapsular las operaciones de base de datos y ahorrar tiempo en el desarrollo.


jun 27 2013 19:36
jun 27 2013 19:39
Los procedimientos almacenados son muy útiles para encapsular las operaciones de base de datos y ahorrar tiempo en el desarrollo.

Cuando se requieren mantener una base de datos con muchas transacciones y cierta confidencialidad, se puede tener un equipo de desarrolladores que realicen código sin saber como es la base de datos.

Para ello usaremos procedimientos almacenados

Ejemplo
Creamos una base de datos para una Inmobiliaria y una tabla para inmuebles (utilizamos pocos campos para no generar código extenso y que pueda confundir)

CREATE TABLE IF NOT EXISTS `inmuebles` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`tipoimueble` varchar(100) DEFAULT '0',
`precio` decimal(10,2) DEFAULT '0.00',
`descripcion` text,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=195 DEFAULT CHARSET=latin1;


Creo un procedimiento almacenado nuevoinmueble para insertar en la base de datos los inmuebles. Al definirlo le asigno como parámetro los datos que debe aceptar, en este caso inmueble, precio y descripción, cada uno con su formato mysql, también escribo la acción INSERT



Procedimientos_mysql.jpg


Luego creamos un formulario de alta de datos html introducir los valores de los nuevos inmuebles.



Procedimientos_mysql_2.jpg


[color=#000000]Aquí enviamos la información a un fichero guardar.php que llamara al procedimiento almacenado y este grabara los datos.[/color]


[color=#000000]Para ello previamente debemos tener creado el código de conexión a la base de datos.[/color]
[color=#000000]Creamos un fichero config.php[/color]




<?php

//Cadena de conexion a base de datos

$link = mysql_connect('localhost', 'usuario', 'clave');

//conexion a base de datos

if (!$link) {

die('Not connected : ' . mysql_error());

}

//Selecciar base de datos

$db='dbInmobiliaria';


if (! mysql_select_db($db) ) {

die ('Error : ' . mysql_error());

} ?>



Procedimientos_mysql_3.jpg


En la imagen podemos ver como se llama al procedimiento almacenado mediante la sentencia de SQL CALL



CALL nuevoinmueble(parametro1, parametro2,...)



Creamos otro procedimiento almacenado en la base de datos para consultar por tipo de inmueble.



CREATE procedure listarinmueble(tipo varchar(150))

[indent=1]SELECT * FROM inmuebles WHERE inmueble LIKE tipo


Además de utilizarlo en php podemos realizar la consulta desde cualquier software que soporte sql y mysql en este caso.

Probamos el procedimiento almacenado listainmueble por tipo en este caso desde el software de administración de mysql Heidisql

CALL listarinmueble('casa')

El resultado puede verse a continuación como ha filtrado por tipo de inmueble.


Procedimientos_mysql_4.jpg


También podemos crear un procedimiento almacenado para eliminar datos donde enviaremos como parámetro el id

[color=#000000]CREATE procedure eliminarinmueble(idinmueble INT)[/color]
[color=#000000]SELECT * FROM inmuebles WHERE id=idinmueble[/color]


Luego llamamos al procedimiento almacenado de la siguiente manera

CALL eliminarinmueble(172)


Lo interesante de esto es que si fuéramos administradores de base de datos de un sistema muy complejo, podríamos poner a disposición de los programadores, solo el listado de procedimientos y no la estructura de la base de datos lo que brinda mayor confidencialidad.

Permitiendo que interactúen con los datos pero no con la estructura, incluso que solo puedan leer pero no modificar. Esto seria un tema para grandes sistemas de base de datos con muchas personas interactuando donde la seguridad y confidencialidad es importante.

Las bases de datos mas conocidas que soportan procedimiento almacenados son mysql, firebird, ms sql server, oracle, db2 postgresql, sybase (primero en crear un lenguaje de transacciones de base de datos para sql denominado Transact-SQL).

¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X