ID: 42548 Comment by: al dot smith at aeschi dot ch dot eu dot org Reported By: garethjo at usc dot edu Status: Open Bug Type: MySQLi related Operating System: Windows XP, Windows 2003 PHP Version: 5.2.4 New Comment:
I'm seeing this exact bug as well. Rolling back to 5.2.3 fixes the problem. For me, executing the CALL() statement within a mysql> client session works just fine... Previous Comments: ------------------------------------------------------------------------ [2007-09-07 14:50:18] garethjo at usc dot edu Yes I have seen those bugs and they are not what I am experiencing. Any stored procedure that would normally return a resultset whether it be the first or not produces the "PROCEDURE procedure.Name can't return a result set in the given context" error not a lost connection. In my example code, the first query is just used to create the database table and stored procedure. So even if it is separated out and ran separately so that the bug test is in a separate file and runs by itself after the database tables and proc are created, it will still produce the same result even though it is the first proc that was run. ------------------------------------------------------------------------ [2007-09-06 22:31:42] [EMAIL PROTECTED] Have you seen bug #32882 and bug #35203 ?? ------------------------------------------------------------------------ [2007-09-05 00:10:23] garethjo at usc dot edu <?php //------------ DATABASE SETUP------------------------ $mysqli = mysqli_init(); $mysqli->real_connect('localhost', 'root', 'root_pass', 'test'); if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } $strDatabaseCreation = 'CREATE DATABASE IF NOT EXISTS test; USE test; DROP TABLE IF EXISTS `products`; CREATE TABLE `products` ( `intProductId` int(10) unsigned NOT NULL auto_increment, `strProductName` varchar(45) NOT NULL, `douProductPrice` double NOT NULL, `intQuantity` int(10) unsigned NOT NULL, PRIMARY KEY (`intProductId`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; INSERT INTO `products` (`intProductId`,`strProductName`,`douProductPrice`,`intQuantity`) VALUES (1,\'Mugs\',10,5), (2,\'Boots\',75,12); CREATE PROCEDURE `test`.`spGetProducts`() BEGIN SELECT * FROM Products; END '; printf ("Connection: %s<br>\r\n.", $mysqli->host_info); if($mysqli->multi_query ($strDatabaseCreation)) { print "Databse created successfully<br>\r\n"; } else { print "failed to create database<br>\r\n".$mysqli->error; $mysqli->close(); die; } $mysqli->close(); //------------ BUG TEST START -------------------------- $mysqli = mysqli_init(); $mysqli->real_connect('localhost', 'root', 'root_pass', 'test'); if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } if($mysqli->real_query ("CALL spGetProducts();")) { if($objResult = $mysqli->store_result()) { while($row = $objResult->fetch_assoc()) { print $row["strProductName"]." ".$row["strProductName"]."<br>\r\n"; } $objResult->free_result(); } else { print "no results found"; } } else { print $mysqli->error; } $mysqli->close(); ?> ------------------------------------------------------------------------ [2007-09-04 19:24:08] garethjo at usc dot edu Description: ------------ All stored procedure call which would return a result set (and did in the past) produces the error "PROCEDURE procedure.Name can't return a result set in the given context" However the expected results are returned via command line and other mysql clients. Reproduce code: --------------- test code can be found at: http://128.125.64.37/bug.zip Expected result: ---------------- resultset returned Actual result: -------------- PROCEDURE procedure.Name can't return a result set in the given context ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=42548&edit=1