#34624 [Opn->Bgs]: mysqli_rpl_query_type always returns MYSQLI_RPL_MASTER for CALL statements
| From: | georg@php.net | Date: | Tue, 27 Sep 2005 08:47:27 +0000 |
| Subject: | #34624 [Opn->Bgs]: mysqli_rpl_query_type always returns MYSQLI_RPL_MASTER for CALL statements | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-85634@lists.php.net to get a copy of this message | ||
ID: 34624
Updated by: georg@php.net
Reported By: jasper at bryant-greene dot name
-Status: Open
+Status: Bogus
Bug Type: MySQLi related
Operating System: Gentoo Linux x86
PHP Version: 5.0.5
New Comment:
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
The client isn't able to detect the type of call statement. Cause a
call of a stored procedure can both retrieve and modify data, it will
send statement always to the server.
As a workaround in your case , you should use the call
mysqli_slave_query instead of using mysql_send_query.
Previous Comments:
------------------------------------------------------------------------
[2005-09-27 07:32:49] jasper at bryant-greene dot name
Same behaviour
------------------------------------------------------------------------
[2005-09-24 13:37:07] sniper@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php5-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5-win32-latest.zip
------------------------------------------------------------------------
[2005-09-24 06:32:43] jasper at bryant-greene dot name
Description:
------------
Calling mysqli_rpl_query_type() for a CALL statement should return
MYSQLI_RPL_SLAVE for CALL statements where the stored procedure is
defined as READS SQL DATA, and MYSQLI_RPL_MASTER for other SPs.
The way it is now (always returning MYSQLI_RPL_MASTER) makes
replication useless when stored procedures are being used.
Reproduce code:
---------------
Where getUser is a stored procedure taking one INT argument and defined
as READS SQL DATA:
<?php
$query_type = $myDatabaseConnection->rpl_query_type('CALL
getUser(7)');
if($query_type == MYSQLI_RPL_SLAVE) {
print('Execute on slave');
} else {
print('Execute on master');
}
?>
Expected result:
----------------
"Execute on slave"
Actual result:
--------------
"Execute on master"
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=34624&edit=1