首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对PDO和mysql_xxx使用一个数据库连接

问对PDO和mysql_xxx使用一个数据库连接
EN

Stack Overflow用户
提问于 2013-08-21 06:43:08
回答 2查看 145关注 0票数 0

我在网站中使用PDO,现在我需要一个使用mysql_xxx函数的php类。它不连接并选择db本身,您应该这样使用它:

代码语言:javascript
复制
    if (!($connection = @mysql_connect($MySQL_host, $MySQL_user, $MySQL_pass))) {
        die('Error connecting to the database!');        }
    if (!@mysql_select_db($MySQL_database, $connection)) {
        die('Error selecting database!');                }

    require '../Zebra_Mptt.php';
    $mptt = new Zebra_Mptt();
    $foo = $mptt->add(0, 'Foo');

我可以创建和共享PDO和mysql_函数之间的连接或任何更有效的连接吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-21 06:52:20

我可以创建和共享PDO和mysql_函数之间的连接吗?

不,这种特性在PHP中是不可用的。

或者其他更有效率的东西?

好的。有效的方法是program against interfaces。Zebra_Mptt库应该为它使用的数据库适配器定义一个接口,以便您可以用重用数据库连接的接口来替换它。

由于当前没有,您需要重构它,将数据库交互调用封装到该库的标准数据库连接对象中,然后提取该连接对象的接口,然后创建PDO变体并将其注入。

我只是简单地看了一下,这门课相当直截了当,所以这应该只是直截了当。它所做的就是提供一些SQL查询,并在一开始检查数据库是否在线,您可以轻松地映射和延迟。

如果您不想这样做,您可以为mysql_*接口使用一个预先存在的包装器,或者替换现有库中的前缀,或者只是禁用mysql扩展,然后让它创建基于PDO的函数。这样一个包装器就在这里:

用法:

代码语言:javascript
复制
<?php
require('/path/to/mysqlpdo.php');

mysqlpdo::createfunctions('mysql');

不过,它需要一个额外的mysql_ping()和mysql_real_escape_string()包装才能工作,但这应该很容易实现,但在这一领域没有什么是完美的。

票数 0
EN

Stack Overflow用户

发布于 2013-08-21 06:47:12

你不能。你必须为此建立两个分离的连接。但是,您也可以将该类更改为使用PDO或找到另一个类。

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

https://stackoverflow.com/questions/18350493

复制
相关文章

相似问题

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