0

Content次のようなコンストラクターを使用して、MySQL データベースからコンテンツを取得するために呼び出される基本的なクラスを作成しました。

$this->handle = new PDO('mysql:host=localhost;dbname=test', $user, $pass);

このハンドルを使用するいくつかのメソッド、主にデータを取得して配列に入れるメソッド:

function select($query) {
    $sth = $this->handle->prepare($query);
    $sth->execute();
    $result = $sth->fetchAll();
    $sth->closeCursor();

    return $result;
}

本当に空想的なものは何もありません。そして、それは素晴らしく機能します。ただし、数十回のさまざまなクエリの後fetchAll、突然空の結果が返されます。データベースで同じクエリを直接実行すると、結果が得られます。また、他のクエリを実行する前にクエリを実行すると、結果も得られます。さらに奇妙なことにfetchAll、スクリプトのこの時点では正常に動作していましたが、その前のクエリが多くなると、空の結果が返されるようになりました。

これらの調査結果に基づいて、スクリプトとデータベースは問題なく、おそらく PDO と関係があると思いました。Content最終的に、欠落していたデータを取得するために、クラスから2番目のオブジェクトを作成して「修正」しました。

$contentTwo = new Content();

もちろん、これは必要ありません。私は本当の解決策と、何が起こっているのかについての理解を探しています。あらゆる種類のエラー報告 (PHP、PDO、MySQL) を有効にしましたが、エラーはありません。内部 PDO の混同でしょうか? 準備済みステートメントの最大量はありますか? 任意のアイデア/ソリューションをいただければ幸いです。

4

1 に答える 1