Php 我需要关闭prestashop中的db会话吗
我正在调用Db::getInstance()->execute()进行插入和更新 对于选择查询Db::getInstance()->executeS() 在此之后,我们需要关闭数据库连接,或者prestashop本身关闭/处理数据库连接 如何检查prestahsop中数据库的连接是否长期打开? 我们的服务器管理员说我们的数据库会话正在增加,因为我们没有关闭连接 任何专家都可以解释PrestaShop是如何关闭连接的,还是需要手动关闭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()
对于我们创建的某些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”
- 保存您的更改
disconnect()
不是一个静态方法,但是可以通过Db::getInstance()->disconnect()调用。