0

SP を呼び出すと、最初の結果のみが返され、2 回目の呼び出しでは次のようになります。

Error: SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.

さて、Stackoverflowが提案した関連する質問を確認しました。アイデアをくれた人もいましたが、試してみるとうまくいきません。

SP を呼び出す関数内のループは次のとおりです。

foreach ($filenames as $value)
    {
    $queryssid = "CALL GetUniqueSSIDByCategoryCombine('$username','$value');";
    $dataUniqueSSID = $this->User->query($queryssid);
    pr($dataUniqueSSID);
    }

ここに私のSPがあります:

CREATE DEFINER=`root`@`localhost` PROCEDURE `GetUniqueSSIDByCategoryCombine`(uid VARCHAR(50),filename VARCHAR(50))
 BEGIN
 SELECT  DISTINCT(transaction_details.essid) AS 'SSID', transaction_details.protocol AS 'protocol', TRANSACTION.filename
 FROM    transaction_details transaction_details, TRANSACTION TRANSACTION  
 WHERE transaction_details.uid_filename_link = TRANSACTION.uid_filename_link AND transaction_details.uid_filename_link = 
     (
         SELECT distinct(transaction.uid_filename_link) FROM TRANSACTION 
         WHERE transaction.uid = uid AND transaction.filename = filename
     ) 
 ORDER BY row_id;
     END

何が解決策になる可能性がありますか。このエラーに対処するのは2日目で、ちょっとイライラしています。前もって感謝します。

4

1 に答える 1

0

まあ、原因は私のPHPバージョンです。PHP 5.3.1から、最新バージョンにアップグレードしました。

于 2012-07-12T02:07:27.393 に答える