|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #30645 getting rowset from a stored procedure, with/without mysqli_realconnect
Submitted: 2004-11-01 10:05 UTC Modified: 2004-11-01 11:09 UTC
From: michael at kofler dot cc Assigned:
Status: Closed Package: MySQLi related
PHP Version: 5CVS-2004-11-01 (dev) OS: linux (suse 9.1)
Private report: No CVE-ID: None
 [2004-11-01 10:05 UTC] michael at kofler dot cc
I am using MySQL 5.0.1 (snapshot) and PHP 5.0.2 with mysqli interface (latest snapshot) under Linux (SUSE 9.1).

I use $mysqli->multi_query to call a SP. I want to get back the SELECT results of the SP.

With a normal connect ($mysqli = new mysqli($mysqlhost, $mysqluser, $mysqlpasswd, $mysqldb)), I don't get results.

However, if I instead use $mysqli = mysqli_init + $mysqli->real_connect() with the very same parameters, everything works fine (many thanks to Gleb Paharenko for this tip).

Reproduce code:
This is my SP:

   SELECT * FROM t1;

And this it the PHP code

   $ok = $mysqli->multi_query("CALL test()");
   if($ok) {
     echo "<p>OK</p>\n";
     do {
       echo "<p>result</p>\n";
       $result = $mysqli->store_result();
       if($result) {
         show_table($result);  // shows result details
     } while($mysqli->next_result());

Expected result:
With $mysqli->real_connect, the code above works fine.

Actual result:
With a normal connect ($mysqli = new mysqli(...)), $ok is always false.


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2004-11-01 10:52 UTC]
This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
Thank you for the report, and for helping us make PHP better.

 [2004-11-01 11:09 UTC]
Btw. there is no need to use mysqli_multi_query here - use 
mysqli_real_query instead. 
PHP Copyright © 2001-2023 The PHP Group
All rights reserved.
Last updated: Sun Jun 04 06:03:41 2023 UTC