10

以前は 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() 常に正しい結果が返されます。

4

4 に答える 4

0

お知らせするだけです。私は同じ問題に遭遇し、問題がPHP Agent 6.6.0.169 (New Relic) 以降で修正されたことを確認できます。現在、PHP Agent 6.7.0.174を使用していますが、 FOUND_ROWS()の問題に関しては問題なく動作しています。

乾杯!

于 2016-11-03T13:31:24.530 に答える