Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/11/2005, 12:06
Avatar de moron
moron
 
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 19 años, 11 meses
Puntos: 2
Stored Procedure y php

Este es mi pequeño aporte (php5-mysql5)

stored procedure de ejemplo (Recomiendo utilizar mysql query browser)

DELIMITER $$

DROP PROCEDURE IF EXISTS `prueba`.`SP_tb_Pger_AM`$$
CREATE PROCEDURE `SP_tb_Pger_AM`(in accion varchar(1),
in nroBBC int,
in fraccion int,
in nroSerie float)
BEGIN
IF accion = 'A' THEN
INSERT INTO prueba.prueba(nroBB,fraccion,nroSerie) VALUES (nroBBC,fraccion,nroSerie);
END IF;

IF accion = 'M' THEN
UPDATE prueba.PRUEBA SET roBB=roBB,fraccion=fraccion, nroSerie = nroSerie WHERE idReg= idReg ;
END IF;
END$$

DELIMITER ;

archivo de coneccion:(El que todos conocemos).
<?php
function Conectarse()
{
if (!($link=mysql_connect("localhost","root","pass")) )
{
echo "Error conectando a la Base de datos.";
exit();
}
if (!mysql_select_db("prueba",$link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}
?>



y Luego lo llamamos asi desde PHP:
(doy por hecho que hay un form que toma los datos y hace accion al siguiente archivo)

include ("coneccion.phtml");
$link=conectarse();
$fraccion = $_POST['fraccion'];
$nroBB= $_POST['nroBB'];
$nroSerie = $_POST['nroSerie'];

mysql_query("call V100_SP_tb_pger_AM('A',$fraccion,$nroBB,$nroSerie) ",$link)
or die(mysql_error());
echo mysql_error($link);

Que lo disfruten...

En lo que tengo inconvenientes es cuando llamo a un Stored procedure que realiza solo un listar (select *..) que no lleva parametros y debe devolver los registro me aparece el siguiente error:

PROCEDURE prueba.V100_SP_tb_prueba_listar can't return a result set in the given context

En cuanto lo solucione lo posteo, y si alguien sabe que me ahorre el tranco.
saludos