Jump to content

Llamar un Procedimiento almacenado Mysql


Recommended Posts

Holas warianos o compartinianos, bueno aca quiero compartir un minitutorial que hice de como crear aplicaciones usando procedimientos almacenados en Mysql 5.0, para que vean que ese codigo de los "SLECT, INSERT ...." se puede sacar de los script PHP, por si desean agregar una capa mas de seguridad, limpiar el codigo, trabajar en capas etc etc..

 

En el tutorial se revisa:

- Creacion de BD

- Creacion de Procedimiento almacenado

- Scripts PHP de conexion, definicion de clase y llamado del procedure.

 

http://www.inspiracion.cl/codigox/2009/04/...-mysql-con-php/

 

Espero les sirva y dejen una opinion!

 

Saludos warianos

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...
  • 2 weeks later...

Hola

 

Buen aporte para los que recien empiezan.

Pero, lo que pusiste no sirve para procesos almacenados, ya que no estas limpiando la memoria, lo que causa que solo puedas ejecutar 1 proceso almacenado por conexion.

 

Aqui te dejo una funcion hecha por mi para llamar procesos almacenados, perteneciente a una clase que hemos creado en mi trabajo.

No pongo la clase completa porque aun no la liberamos, ya que la ocupamos mucho en la pega.

Cuando tengamos una nueva version, la libero.

 

function procedure($name,$parametros,$salida){

$sql="CALL $name($parametros);";

$i=0;

$arreglo=array();

$resultado=false;

mysqli_multi_query($this->conexion, $sql) or die($this->error_consulta(mysqli_error($this->conexion),$sql));

do {

/* guardar el primer lote de resultados */

if ($result = mysqli_store_result($this->conexion)) {

while ($row = mysqli_fetch_assoc($result)) {

foreach($row as $key=>$value){

$arreglo[$i][$key]=$value;

}

++$i;

}

mysqli_free_result($result);

}

} while (mysqli_next_result($this->conexion));

 

if($salida==1){

$arreglo[0]['resultado']=$resultado;

return $arreglo[0];

}else{

return $arreglo;

}

}

 

Si alguien le encuentra un problema, agradesco me lo informe.

 

Muchos saludos!

Edited by axelstone
Link to comment
Share on other sites

  • 1 month later...
  • 3 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...