首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关闭数据库句柄

问关闭数据库句柄
EN

Stack Overflow用户
提问于 2012-04-04 04:53:02
回答 2查看 470关注 0票数 0

我有一个关闭连接的通用函数,它接受一个dbh,这是ref当前打开的数据库句柄。

我这样叫它

闭合连接($dbh)

根据这个dbh是sqlsrv dbh还是mysql dbh的情况,我会做这两件事中的一件;

sqlsrv_close( $dbh);

或

mysql_close($dbh);

除了在函数调用中传递连接类型之外,有没有一种方法可以通过简单地探测由ref传递的$dbh来以编程方式确定这是一个mysql或mssql句柄?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-04 05:04:50

尝试使用get_resource_type($dbh);。它将为MySQL DB句柄返回mysql link。我不知道它会为其他任何东西返回什么,因为我手头上只有MySQL。

票数 1
EN

Stack Overflow用户

发布于 2012-04-04 05:07:14

使用应用程序范围的一种方法可能是定义一个接口。

代码语言:javascript
复制
// connection interface
interface db
{
  public function close($conn);
}

为所使用的驱动程序提供实现。

代码语言:javascript
复制
// mysql
class mysql implements db
{
  public function close($conn) { 
    mysql_close($conn);
  }
}
// mssql
class mssql implements db {
  public function close($conn) {
    sqlsrv_close($conn);
  }
}

使用应用程序范围的变量来实例化适当的驱动程序。

代码语言:javascript
复制
if($driver == "mysql") {
  $db = new mysql();
} elseif($driver == "mssql") {
  $db = new mssql();
}
...
$db::close($conn);

这似乎是最常见的处理方式。

同样,任何人都会推荐你,你应该使用start using PDO来解决这个问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10001209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档