I ran into a problem today when dealing with a very simple SQL Query. The query simply calls a stored procedure on the MySQL server. This is a trivial app, so I was using the very basic mysql_connect(), mysql_query() functions. The result wasn’t being returned an mysql_error() was saying that the error was:
PROCEDURE db.procedure_name can't return a result set in the given context
Of course ‘db.procedure_name’ was the actual name of the procedure I was calling. Googling for the error seemed to indicate that the MySQL client library was old, but this is on a fairly modern CentOS 5.5 server with the php-mysql package at version 5.1.6.
After a bit of experimenting, I found that I was able to change to using the mysql improved versions of the PHP functions and that worked fine
$dbconn = mysql_connect($dbhost, $dbuser, $dbpass); $result = mysql_query("CALL db.procedure_name('arg1', 'arg2', 'arg3')", $dbconn) $row = mysql_fetch_assoc($result);
Becomes
$dbconn = mysqli_connect($dbhost, $dbuser, $dbpass); $result = mysqli_query($dbconn, "CALLdb.procedure_name('arg1', 'arg2', 'arg3')"); $row = mysqli_fetch_assoc($result);
Note that changing from mysql_query to myqli_query needs the parameters reversed.
After making that change I’m able to run the stored procedure correctly.
Hi Thanks for the help its working great.
Hi, thank you very much, I were googling for this since morning, you save my time.many thanks.
Thank u very much.. I was just about to get frustrated.. But this worked perfectly.
Hello,
I’m using the mysql_query functions, and it works perfectly… Well, kind of. The thing is that I have two PHP files that make a call to a Stored Procedure. One file success, and the other returns that error “can’t return a result set in the given context”… Do you have any idea what could I be missing?