我有以下类方法 -
class Someclass
{
/* Other properties and methods */
public function close_connection($connection=NULL)
{
return mysql_close($connection)
}
}
Run Code Online (Sandbox Code Playgroud)
现在,在mysql_close上面的代码中调用函数之前,我想检查是否$connection指向打开的数据库连接.也就是说,我想确保我关闭的连接已打开且尚未关闭.
我怎样才能做到这一点?
use*_*297 21
您可以尝试检查您的$connection变量是否是一个有效的资源.
<?php
if(is_resource($connection))
{
mysql_close($connection);
}
?>
Run Code Online (Sandbox Code Playgroud)
编辑:好的,这个更新的代码现在包括戈登的建议.
<?php
if(is_resource($connection) && get_resource_type($connection) === 'mysql link')
{
return mysql_close($connection);
}
else
{
return false;
}
?>
Run Code Online (Sandbox Code Playgroud)
如果您有其他可能关闭连接的代码,请让他们将连接设置为空,以便您可以进行测试。
如果您不确定连接是否已从另一端关闭,由于超时或网络错误,测试它的唯一方法是使用 mysql_ping 等实际发送数据。然而,如果您只是想避免关闭可能已经关闭的连接,这将是对资源的严重浪费。
注意:正如evord所提到的,如果连接不再打开,使用mysql_ping将尝试重新打开连接。
| 归档时间: |
|
| 查看次数: |
23030 次 |
| 最近记录: |