Edit report at http://bugs.php.net/bug.php?id=53993&edit=1

 ID:                 53993
 Updated by:         u...@php.net
 Reported by:        doqnach at miraizou dot net
 Summary:            "Command out of sync" after CALL
-Status:             Open
+Status:             Bogus
 Type:               Bug
 Package:            MySQLi related
 Operating System:   WinXP SP3 & Win Server 2003 R2
 PHP Version:        5.3.5
 Block user comment: N
 Private report:     N

 New Comment:

Sorry, but that's how it is. Check the docs and fetch all result sets
before running new statement.


Previous Comments:
------------------------------------------------------------------------
[2011-05-09 15:05:53] u...@php.net

This is somewhat beyond the scope of the PHP drivers. The PHP drivers
follow MySQL Client Server protocol. Given you don't like the protocol
and its handling of certain queries - with the need to fetch result sets
in some cases - you should direct your request to the database vendor
but not to php.net and the PHP drivers. This is not a PHP driver
specific issue.

------------------------------------------------------------------------
[2011-02-11 09:51:02] doqnach at miraizou dot net

Description:
------------
I'm having problems doing a SELECT query after having done a CALL to a
stored procedure.



see bug #48065 and bug #35203



The statement by schwern at pobox dot com at bug #48065 clearly states
my view on this as well.



This 'issue' is not bogus and it's strange that you have to handle a
CALL completely different from a normal SELECT even though the rest of
the logic is exactly the same.



I have made a post at the mysql support forum when trying to figure out
what was going wrong which contains a working test script.



multi query should not have to be the only solution for this.

Test script:
---------------
http://forums.mysql.com/read.php?52,407069,407203#msg-407203

Expected result:
----------------
array(1) {

  [0]=>

  array(1) {

    ["VERSION()"]=>

    string(16) "5.1.51-community"

  }

}



array(1) {

  [0]=>

  array(1) {

    ["VERSION()"]=>

    string(16) "5.1.51-community"

  }

}

Actual result:
--------------
array(1) {

  [0]=>

  array(1) {

    ["VERSION()"]=>

    string(16) "5.1.51-community"

  }

}

object(mysqli)#1 (17) {

  ["affected_rows"]=>

  int(1)

  ["client_info"]=>

  string(48) "mysqlnd 5.0.7-dev - 091210 - $Revision: 300533 $"

  ["client_version"]=>

  int(50007)

  ["connect_errno"]=>

  int(0)

  ["connect_error"]=>

  NULL

  ["errno"]=>

  int(2014)

  ["error"]=>

  string(52) "Commands out of sync; you can't run this command now"

  ["field_count"]=>

  int(1)

  ["host_info"]=>

  string(20) "localhost via TCP/IP"

  ["info"]=>

  NULL

  ["insert_id"]=>

  int(0)

  ["server_info"]=>

  string(16) "5.1.51-community"

  ["server_version"]=>

  int(50151)

  ["sqlstate"]=>

  string(5) "HY000"

  ["protocol_version"]=>

  int(10)

  ["thread_id"]=>

  int(12)

  ["warning_count"]=>

  int(0)

}



Fatal error: Call to a member function fetch_assoc() on a non-object in
<path>\test_call.php on line 21


------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=53993&edit=1

Reply via email to