2

私は挿入と更新のために Db::getInstance()->execute() を呼び出しています Db::getInstance()->executeS() この後、データベース接続を閉じるか、prestashop 自体がデータベース接続。

prestahsop のデータベースの接続が長時間開いているかどうかを確認するにはどうすればよいですか? サーバー管理者は、接続を閉じていないため、データベース セッションが増加していると言っています。

PrestaShop がどのように接続を閉じるか、または手動で閉じる必要があるか説明してください。

 Db::getInstance()->execute()

作成した特定の cronjob ファイルについては、以下に示すように構成ファイルを含めます。

    $db = Db::getInstance();
     $result = $db->executeS($get_promotions_sql, false);   
     while ($row = $db->nextRow($result)) {
       $id_product=$row['id_product'];
       $name="<br>".$row['name'];
       }

これにより、データベース接続が永久に開かれますか? または、prestashop の getInstance 関数によって閉じられますか、または処理されますか

4

2 に答える 2

1

Dbクラスを見てみると…

/**
 * Close connection to database
 */
public function __destruct()
{
    if ($this->link)
        $this->disconnect();
}

デストラクタが呼び出されると、データベースへの接続が閉じられます。

PHP __destruct() メソッドが呼び出されることを信頼できますか?

コンストラクターが呼び出されると、接続が確立されます。いいえ、データベースへの接続を手動で開閉する必要はありません。

于 2016-11-06T13:03:31.293 に答える