> This sproc is being called by a php script executed in a browser.
That's a problem. The mysql interface lets you call exactly one sproc with one query result before the connection folds up. The mysqli interface is not broken in that way, but it's cumbersome, needing code like this assuming 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();
We all learned in school or books to encapsulate program logic in routines. But moving your routines from PHP to sprocs would have to yield a huge benefit to offset the above disadvantages. For you, what's that advantage?