以前は PHP 5.4 で実行されていた laravel 4.1 アプリケーションがありますが、5.6.13 にアップグレードしてから (そして今日は 5.6.14 に)、クエリが に対して 0 を返すことがあることに気付きましたFOUND_ROWS()
。一部のクエリでは断続的であるように見えますが、他のクエリでは永続的な問題です。
最も影響を受けるセットは、サブクエリを含むセットです。
PDO を使用しています (laravel モデルは使用しておらず、PDO オブジェクトと直接やり取りしているだけです)。この期間、MySQL も変更されていません。
すべての種類を試しました - 1 つの提案は、トレース モードを 0 に設定することでしたが、それは役に立ちませんでした。false に設定しよPDO::MYSQL_ATTR_USE_BUFFERED_QUERY
うとしましたが、選択しようとすると PDO エラーが発生しますFOUND_ROWS()
(現在、正確なメッセージを取得できません)。
5.4 にロールバックすることはできませんが (神にお願いします)、私は完全に立ち往生しています...
これらのクエリを MySQL で直接実行してから実行すると、FOUND_ROWS()
常に正しい結果が返されます。