teamtreehouse の PHP/MySQL プロジェクトのサンプル サイトをいじっています...「モデル」コードでは、products.php というファイル内の関数内にすべての DB 呼び出しがあります。これらの関数のそれぞれが新しい PDO を作成します。インクルードファイルをインポートすることにより、オブジェクト..例:
function get_products_recent() {
    require(ROOT_PATH . "inc/database.php");  //this instantiates a new PDO object called $db
    try {
        $results = $db->query("
                SELECT name, price, img, sku, paypal
                FROM products
                ORDER BY sku DESC
                LIMIT 4");
    } catch (Exception $e) {
        echo "Data could not be retrieved from the database. get_products_recent";
        exit;
    }
    $recent = $results->fetchAll(PDO::FETCH_ASSOC);
    $recent = array_reverse($recent);
    return $recent;
}
しかし、dbクエリがページの読み込みを大幅に遅らせていることがわかりました..
いくつかのグーグル検索の後、PDOコンストラクターに追加できる PDO::ATTR_PERSISTENT => true 属性を見つけました...そして、ページの読み込みを「通常」に高速化しました..
しかし、現実世界のシナリオでは、これは間違った/非効率的な方法ですか..? db 呼び出しを行うすべての関数呼び出し内で新しい PDO オブジェクトを作成するのではなく、PDO オブジェクトを開いて使用するより良い方法はありますか?