2012-01-19 14 views
2

で同期してコマンド私は2つのストアドプロシージャを持っていますが、私は2つのストアドプロシージャを呼び出すときに次のエラーが来る:SQLのエラー:2014:CakePHPの

Warning (512):

SQL Error: 2014: Commands out of sync; you can't run this command now [CORE/cake/libs/model/datasources/dbo_source.php, line 684]

私は、CakePHPを使用しています。 そして、私のコードは次のとおりです。

$city=$this->City->query('call CityMaster_SelectCityName'); 
$allAgents=$this->Admin->query('call WorkForceLoginMaster_SelectLoginName(0)'); 

は簡単な解決策はありますか?

答えて

1

ストアドプロシージャ/プリペアドステートメントを使用する場合は、別のストアドプロシージャ/プリペアドステートメントを呼び出す前に結果セットを格納する必要があります。生のmysqliでは、mysqli_store_result()を使用します。私はケーキにそれについてのAPIがあれば私は知らなかった。

+0

返信ありがとうございますが、いくつかの説明で返信することができます。あなたの返信後、私は与えられたコードを使用しますが、私の問題はそのままです:$ city = $ this-> City-> query( 'Call CityMaster_SelectCityName'、MYSQLI_STORE_RESULT); $ city-> free(); $ this-> set( 'cities'、$ city); $ allAgents = $ this-> Admin-> query( 'WorkForceLoginMaster_SelectLoginName(0)'を呼び出します); $ this-> set( 'allAgents'、$ allAgents);このコードエラーを使用した後は、「致命的なエラー:/var/www/html/flatsnflats/app/controllers/inventorys_controller.phpの非オブジェクト上のメンバ関数free()を18行目で呼び出してください。どのように私はこれを使用します。 – zakmail007

+0

私は本当にCakePHPを知らない。 '$ city = $ this-> City->クエリ( 'CityMaster_SelectCityName'を呼び出す、MYSQLI_STORE_RESULT);のように見えます。'行はオブジェクトを返しませんでした。なぜ私は伝えることができません。 – Mchl

+0

okありがとうございます。しかし、** core php **の2つのストアドプロシージャの使い方を教えてください。 – zakmail007