如何从 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 对象获取连接资源?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不同文件中使用 PDO 连接对象[重复]

PDO将对象键值作为id获取并将id保留在对象中

PDO

PHP PDO类

解析由 PDO 语句创建的 JSON 对象

我可以有一个持久的 PDO 对象,它只接受从 AJAX 调用绑定的新变量吗?