Php 我需要关闭prestashop中的db会话吗

Php 我需要关闭prestashop中的db会话吗,php,mysql,prestashop,prestashop-1.6,prestashop-1.7,Php,Mysql,Prestashop,Prestashop 1.6,Prestashop 1.7,我正在调用Db::getInstance()->execute()进行插入和更新 对于选择查询Db::getInstance()->executeS() 在此之后,我们需要关闭数据库连接,或者prestashop本身关闭/处理数据库连接 如何检查prestahsop中数据库的连接是否长期打开? 我们的服务器管理员说我们的数据库会话正在增加,因为我们没有关闭连接 任何专家都可以解释PrestaShop是如何关闭连接的,还是需要手动关闭 Db::getInstance()->execute(

我正在调用Db::getInstance()->execute()进行插入和更新 对于选择查询Db::getInstance()->executeS() 在此之后,我们需要关闭数据库连接,或者prestashop本身关闭/处理数据库连接

如何检查prestahsop中数据库的连接是否长期打开? 我们的服务器管理员说我们的数据库会话正在增加,因为我们没有关闭连接

任何专家都可以解释PrestaShop是如何关闭连接的,还是需要手动关闭

 Db::getInstance()->execute()
对于我们创建的某些cronjob文件,我们要做的是包括配置文件,如下所示: 需要'config/config.inc.php'

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

这会使我的数据库连接永远打开吗?或者它会被prestashop中的getInstance函数关闭/处理查看
Db

/**
 * Close connection to database
 */
public function __destruct()
{
    if ($this->link)
        $this->disconnect();
}
调用析构函数时,将关闭与数据库的连接


调用构造函数时建立连接。因此,不需要手动打开/关闭数据库连接。

您不应该关闭数据库连接,PrestaShop将自动处理。您还可以通过调用以下代码手动断开连接:

Db::getInstance()->disconnect();
如果您的商店存在性能问题,那么您可以启用PrestaShop Code Profiler并查看哪些对象实例正在使用您的服务器内存

要启用PrestaShop代码探查器,您需要执行以下步骤:

  • 在服务器上,编辑文件/config/defines.inc.php

  • 找到这一行(第43行附近):定义(“PS\u DEBUG\u PROFILING”,
    假)

  • 在这一行中,将“false”更改为“true”

  • 保存您的更改


db会话的abt是什么?我如何检查它为什么会因为我的代码而增加?在我不包含任何类的外部页面中,我只是添加标题并在此处调用db实例,我需要调用析构函数吗?这是我的代码@JerryAbraham,正如在应答链接中所解释的,当对象不再存在引用或脚本执行结束时,将调用析构函数。下面是另一个解释析构函数不会被调用的地方。
disconnect()
不是一个静态方法,但是可以通过
Db::getInstance()->disconnect()调用。