7

この単純なコードは2つのMySQLプロシージャを呼び出しますが、値を返す最初のプロシージャの後、2番目のクエリでエラーを返します。

注: 1番目または2番目を単独で実行すると、それぞれが正しく返されます。したがって、クエリは一緒にではなく機能します。

完全なエラーは次のとおりです。 Invalid query: Commands out of sync; you can't run this command now

どんなアイデアでもお願いします。

<?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

?>
4

1 に答える 1

5

PHP 用の古い MySQL 拡張機能は、ストアド プロシージャで正しく動作しません。残念ながら、複数のストアド プロシージャを実行する方法はありません。問題は、最初の手順がバッファリングされた結果セットを残し、2 番目の手順が失敗することです。ただし、mysqli 拡張機能を使用できます。これを行う方法の良い例を次に示します。

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

于 2013-03-12T23:15:13.247 に答える