如何从 PDO 对象获取连接资源?
Posted
技术标签:
【中文标题】如何从 PDO 对象获取连接资源?【英文标题】:How to get connection resource from PDO object? 【发布时间】:2012-12-12 02:20:42 【问题描述】:我需要从已经存在的 PDO 对象中获取连接资源。 例如:
...
$oPDO = new PDO($sOdbcDsn);
$rOdbcConnection = $oPDO -> getConnection();
odbc_prepare($rOdbcConnection, $sQuery);
...
反之亦然,我想将现有连接传递给 PDO 构造函数。 我希望能够分别处理 PDO 对象和直接连接。
有没有办法从 PDO 中提取连接?
【问题讨论】:
为什么要在 PDO 和过时的查询机制之间来回切换? PDO 可以处理您需要的任何事情,同时还提供额外的证券。 我不确定它是否有所作为,它是 RDBMS 在内部管理连接池并为连接 ID 分配属性。传递连接对象可能不会将关联的连接传递给 RDBMS。 布拉德,PDO 已经知道很长时间没有修复 BLOB 数据字段的错误,我基于 PDO 的数据库后端无法处理这些 BLOB 查询。所以我必须想办法解决。 @user1581268 您想通过传递$oPDO
作为对象在代码中的任何位置使用PDO 连接详细信息吗?
@user1581268 从 PDO 对象中获取一些指向连接详细信息的指针就足够了
【参考方案1】:
我认为你有两个选择:
将您的 PDO 连接(和方法)包装在一个您可以随意传递的类中。定义一个将重用连接句柄的复制构造函数。
从 php 源代码中挖掘出 PDO 对象的源代码,然后从那里构建您需要的东西。
【讨论】:
以上是关于如何从 PDO 对象获取连接资源?的主要内容,如果未能解决你的问题,请参考以下文章