Firebird Interbase 连接 - unset() 和 ibase_close()

问题描述

我有一个愚蠢的问题。 在使用 ibase_connect() 结束与 Firebird 数据库的连接方面,unset() 和 ibase_close() 之间有区别吗? 我知道有些人使用 unset() 到 PDO 连接等。

喜欢:

$connection = ibase_connect(SOME ParaMETERS HERE);

然后:

unset($connection);

ibase_close($connection);

如果它们的行为相同,也许一个函数比另一个更快?

解决方法

我对 PHP 的了解充其量只是基本的,但据我所知有明显的不同。

函数ibase_close($connection)会向数据库服务器发送消息,服务器释放连接资源,然后关闭连接,而unset($connection)只会删除变量$connection

我对 PHP 和 firebird-php/interbase 驱动程序的了解不足以确定使用 unset 是否会触发清理或关闭连接,但快速扫描 firebird-php 源代码并不能确定' 不显示任何这样的机制。我的建议是,您应该明确并在调用 ibase_close 之前使用 unset ,以确保资源(包括服务器端资源)已正确释放。

,

ibase_close 关闭与 $connection 关联的服务器的非持久连接。链接上的默认事务已提交,其他事务将回滚。

unset 清除指向实例的指针。