#42548 [Opn->Fbk]: PROCEDURE xxx can't return a result set in the given context

From: Date: Thu, 06 Sep 2007 22:31:43 +0000
Subject: #42548 [Opn->Fbk]: PROCEDURE xxx can't return a result set in the given context
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-117256@lists.php.net to get a copy of this message
 ID:               42548
 Updated by:       jani@php.net
 Reported By:      garethjo at usc dot edu
-Status:           Open
+Status:           Feedback
 Bug Type:         MySQLi related
 Operating System: Windows XP, Windows 2003
 PHP Version:      5.2.4
 New Comment:

Have you seen bug #32882 and bug #35203 ??



Previous Comments:
------------------------------------------------------------------------

[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


Thread (19 messages)

« previous php.bugs (#117256) next »