Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP Commands out of sync error

Tags:

php

mysql

This simple code calls two MySQL procedures, but after the first which returns values, it returns an error on the second query.

NOTE: Running the first or the second on their own will return correctly for each one. So the queries work, just not together.

The full error is: Invalid query: Commands out of sync; you can't run this command now

Any ideas please.

<?php

require_once ('connection.php');
//First Query and Output

$result = mysql_query("CALL C01_Client_Summary_ByAccount(1, '2012-02-27', '2013-03-29');");
if (!$result) { 
die('Invalid query: ' . mysql_error());
}
while($row=mysql_fetch_array($result))
{
echo $row['CommisionPercentage'];
}

mysql_free_result($result); 
//END First Query and Output

//Second Query and Output
$new2 = mysql_query("CALL C01_Client_Summary_ByBetType(1, '2012-02-27', '2013-03-29');");
if (!$new2) { 
die('Invalid query: ' . mysql_error());
}
while($row=mysql_fetch_array($new2))
{
echo $row['Turnover'];
}
//END Second Query and Output

?>
like image 571
user2162372 Avatar asked Mar 12 '13 22:03

user2162372


People also ask

How do you fix Commands out of sync you can't run this command now?

If you get Commands out of sync; you can't run this command now in your client code, you are calling client functions in the wrong order. This can happen, for example, if you are using mysql_use_result() and try to execute a new query before you have called mysql_free_result() .

What is Mysql_store_result?

mysqli_store_result(mysqli $mysql , int $mode = 0): mysqli_result|false. Transfers the result set from the last query on the database connection represented by the mysql parameter to be used with the mysqli_data_seek() function.


1 Answers

The old MySQL extension for PHP is not working properly with stored procedures. Unfortunately there seams to be no way to execute multiple stored procedures with it. The problem is that the first procedure leaves some buffered result set which cause the second one to fail. You can however use mysqli extension. Here is a nice example on how to do this:

http://www.daniweb.com/web-development/php/threads/234868/error-commands-out-of-sync-you-cant-run-this-command-now

like image 134
Bojan Dević Avatar answered Sep 29 '22 16:09

Bojan Dević