我正在调用Db::getInstance()->execute()进行插入和更新Db::getInstance()->execute ()在此之后,我们需要关闭数据库连接或prestshop本身关闭/处理数据库连接。
如何在prestahsop中检查数据库的连接是否长时间打开?我们的服务器管理员说我们的数据库会话正在增加,因为我们没有关闭连接。
任何专家PrestaShop可以解释PrestaShop关闭连接或我们需要手动关闭它吗?
Db::getInstance()->execute()
对于我们创建的某些cronjob文件,我们所做的是包括如下所示的配置文件:需要的配置/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'];
}
是否使我的数据库连接永远打开?还是关闭/或由prestshop中的getInstance函数处理
您不应该关闭DB连接,PrestaShop将自动处理。您也可以通过调用以下代码手动断开连接:
Db::getInstance()->disconnect();
如果你的商店有性能问题,那么你可以启用PrestaShop代码分析器,看看哪些对象实例正在使用你的服务器内存。
为了启用PrestaShop代码分析器,您需要遵循以下步骤:
在你的服务器上编辑/config/definitions .inc.php文件。
找到这行(第43行左右):define('_PS_DEBUG_PROFILING_',
假);在这一行中,将"false"改为"true"
看Db
类…
/**
* Close connection to database
*/
public function __destruct()
{
if ($this->link)
$this->disconnect();
}
当调用析构函数时,将关闭与数据库的连接。
我可以信任PHP __destruct()方法被调用吗?
在调用构造函数时建立连接。因此,不需要手动打开/关闭与数据库的连接。