PHP + MySql + Procedimientos almacenados, ¿cómo obtengo acceso a un valor de “salida”?
-
09-06-2019 - |
Pregunta
Falta mucha documentación sobre todo lo que tenga que ver con los procedimientos almacenados en MySQL con PHP.Actualmente tengo un procedimiento almacenado al que llamo vía PHP, ¿cómo puedo obtener el valor de un parámetro de salida?
Solución
parece que está respondido en esta publicación:
http://forums.mysql.com/read.php?52,198596,198717#msg-198717
Con la API PHP de mysqli:
Supongamos sproc myproc( IN i int, OUT j int ):
$mysqli = new mysqli( "HOST", "USR", "PWD", "DBNAME" );
$ivalue=1;
$res = $mysqli->multi_query( "CALL myproc($ivalue,@x);SELECT @x" );
if( $res ) {
$results = 0;
do {
if ($result = $mysqli->store_result()) {
printf( "<b>Result #%u</b>:<br/>", ++$results );
while( $row = $result->fetch_row() ) {
foreach( $row as $cell ) echo $cell, " ";
}
$result->close();
if( $mysqli->more_results() ) echo "<br/>";
}
} while( $mysqli->next_result() );
}
$mysqli->close();
Otros consejos
Aquí hay un ejemplo de cómo hacer esto con mysql, mysqli y pdo:
http://www.joeyrivera.com/2009/using-mysql-stored-procedures-with-php-mysqlmysqlipdo/
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow