背景(think-orm@2.0.61)
由于需要长时间运行一个php脚本,而运行过程并不是需要一直与数据库交互,但thinkphp主要是为web站点开发的框架,而站点一般都是数据获取完则进程结束,所以thinkphp没提供手动关闭数据库的接口对站点开发并无太大影响,但对于长时间运行脚本则是个致命问题
在/thinkphp/library/think/db/PDOConnection.php类中是可以发现一个close()的方法,且该方法就是tp用于关闭数据的。
// 因为db没有直接提供close接口,需要曲线救国,先获取链接再由链接去调用关闭
think\facade\Db::connect()->close();
# 或
$dbInstanceList = think\facade\Db::getInstance(); // (推荐用法)获取所有实例,逐一关闭所有创建的实例
foreach ($dbInstanceList as $db) {$db->close();
}
// think\facade\Db::getConnection()->close(); // 1.* 版本也可用这个,但不推荐