PHP - 使用 ADBDB 同时连接到同一服务器上的两个数据库

2024-03-22

是否可以使用 PHP 5.3/ADODB5/SQL Server 2008 在同一服务器上打开与两个模式的连接?这就是我正在尝试的:

//  Connect to users database
$connUsers = NewADOConnection('mssql');
$connUsers-> Connect($server, $user, $password, $dbNameUsers);
$connUsers->SetFetchMode(ADODB_FETCH_ASSOC);    

//  Connect to main database    
$conn = NewADOConnection('mssql');
$conn-> Connect($server, $user, $password, $dbNameMain);
$conn->SetFetchMode(ADODB_FETCH_ASSOC); 

其中任何一个都可以单独工作,但如果两者同时打开,查询就会失败。请注意,除了数据库名称之外,一切都相同。

我看过的几个地方都说您可以在第二个连接字符串中省略服务器名称,如下所示:

$conn-> Connect(false, $user, $password, $dbNameMain);

但这给了我错误(针对 $conn 打开的记录集不是有效的对象)。

我可以根据需要打开和关闭不同的连接,但为了可维护性,我肯定希望将所有连接设置在脚本的顶部,然后在底部将它们全部关闭。

谢谢你的帮助。


这是我制作的一个快速课程,它应该允许您使用 adoDB 连接到 3 个数据库:

class Data {
    private static $_dbOne = null;
    private static $_dbTwo = null;
    private static $_dbThree = null;

    protected function __construct() {
    }

    /**
     * This function returns the database connection object
     * @return Object Database Connection
     */
    public static function dbOne() {
        include_once(LIBRARY_PATH.'adodb5/adodb.inc.php');
        if (null === self::$_dbOne) {


            $_connOne = 'mysql://username:[email protected] /cdn-cgi/l/email-protection/database';

            self::$_dbOne = &ADONewConnection($_connOne);
            if (self::$_dbOne==false) { die('Could not connect to the database.'); }

        }

        return self::$_dbOne;
    }

    /**
     * This function returns the database connection object
     * @return Object Database Connection
     */
    public static function dbTwo() {
        include_once(LIBRARY_PATH.'adodb5/adodb.inc.php');
        if (null === self::$_dbTwo) {


            $_connTwo = 'mysql://username:[email protected] /cdn-cgi/l/email-protection/database';

            self::$_dbTwo = &ADONewConnection($_connTwo);
            if (self::$_dbTwo==false) { die('Could not connect to the database.'); }

        }

        return self::$_dbTwo;
    }

}

    /**
     * This function returns the database connection object
     * @return Object Database Connection
     */
    public static function dbThree() {
        include_once(LIBRARY_PATH.'adodb5/adodb.inc.php');
        if (null === self::$_dbThree) {


            $_connThree = 'mysql://username:[email protected] /cdn-cgi/l/email-protection/database';

            self::$_dbThree = &ADONewConnection($_connThree);
            if (self::$_dbThree==false) { die('Could not connect to the database.'); }

        }

        return self::$_dbThree;
    }

}

以下是如何使用此类的示例:

$sql = "SELECT * FROM *";
$results1 = Data::dbOne()->Execute($sql);
$results2 = Data::dbTwo()->Execute($sql);
$results3 = Data::dbThree()->Execute($sql);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP - 使用 ADBDB 同时连接到同一服务器上的两个数据库 的相关文章

  • 如何在 PHP 中比较两个数组并列出差异?

    我正在构建一个表单来执行以下操作 打印从 MySQL 获取的用户和权限表 用户拥有的每一项权限都是一个复选框 而他们缺少的每一项权限都是一个未选中的复选框 允许管理员选中和取消选中复选框以授予或删除权限 提交表单后 显示一个确认页面 其中仅
  • 如何按日期对包含通过合并 get_posts 结果创建的 WP po​​st 对象的数组进行排序?

    我想通过合并 2 个单独的帖子的结果来创建单个帖子数组get posts查询 并按发布日期对数组进行排序 在我下面的代码中 get posts 为 args b and args a已合并为一个数组 但它们是分开的 的 9 个标题 args
  • 只获取倒数第二条记录 - mysql-query

    我有一个如下表记录 my table id rating description 1 0 0 bed 2 1 0 good 3 0 0 bed 4 1 0 good 5 0 0 bed 6 0 0 bed 7 0 0 bed 现在我通过评级
  • 将具有子目录的域转发到具有子目录的其他域

    我有一个热爱域名的客户 更喜欢转发域名 其中许多域没有与其关联的网站 它们仅用于营销和转发 我知道如何轻松地将一个域转发到另一个域 但我好奇的是如何将这些域的特定 url 转发到其他特定 url 例如 www site1 com 目录 gt
  • 我需要一个实时网站来测试 Facebook Connect 吗?

    我正在尝试将 facebook connect 与 nmy 社交网站集成 目前用户在我的网站上使用自己的帐户创建和登录 但我希望允许用户基本上在我的网站上创建一个新帐户 但使用 facebook connect 登录 我我认为在我的网站上这
  • 为 Zend 应用程序提供数据库处理程序的“正确”方法是什么

    假设您严格遵守某个组织的惯例Zend应用程序 http framework zend com manual en zend application html 您应该在哪里设置数据库处理程序以供应用程序开发人员访问 我知道如何设置ZendDb
  • PHP MYSQL文件内容转义问题

    我正在尝试使用 php 将 pdf 文件上传到 mysql 数据库中 除了文件内容之外 一切都很好 无论我如何尝试转义特殊字符 查询总是失败 主要是 未知命令 n 我使用过addslashes mysql real escape strin
  • artisan 明确编译返回错误代码 255

    跑步时composer install在我的 laravel 项目中 我收到错误 脚本 php artisan 清晰编译处理返回的 post install cmd 事件 错误代码为 255 关于可能出现的问题有什么建议吗 请注意 comp
  • PHP设置全局环境变量的方法

    我已阅读问题 答案here https stackoverflow com questions 13568191 how to get system environment variables into php while running
  • php - 未知:第 0 行需要打开失败。laravel 5.6

    我刚刚安装了 laracast flash 并通过 Composer 更新了 nesbot carbon 下载碳时命令发疯了 Cmd界面显示了一会界面上散落的文字和方框 下载完成 做过php artisan serve at localho
  • PHP 数组到 JavaScript 数组

    假设我在 php 中有这个数组 cities array Caracas gt array air gt array 4 3 5 Working Days Saturday sea gt array 18 3 5 Days Wednesda
  • yii2 无线电内联 Html 帮助器

    我在 yii2 中有这个 radioList Html radioList abc null new class gt form control input sm 它生成这个 div class radio 但我想要 div class r
  • javascript 和 PHP 中的正则表达式有什么区别吗?

    这是在 javascript 中验证电子邮件地址的正则表达式 我不确定是否可以直接在 PHP 中使用它 a z d u00A0 uD7FF uF900 uFDCF uFDF0 uFFEF a z d u00A0 uD7FF uF900 uF
  • PHP - 当 false 时获取 bool 来回显 false

    以下代码不会打印出任何内容 bool val bool false echo bool val 但下面的代码打印1 bool val bool true echo bool val 有没有更好的打印方法0 or false when boo
  • 如何在 PHP 中使用 file_get_contents 获取图像的 MIME 类型

    我需要获取图像的 MIME 类型 但我只有图像的正文file get contents 是否有可能获取 MIME 类型 是的 你可以这样得到它 file info new finfo FILEINFO MIME TYPE mime type
  • NetBeans 代码模板 ${date}?

    我在 Eclipse 中有这个代码模板 自 日期 起 当输入时我得到这样的东西 自2009年8月4日起 但是当我添加相同的模板时 自 日期 起 到 NetBeans 它输出 自日期以来 有人可以帮忙吗 还没有答案吗 这在 Netbeans
  • 添加 current_page_item 类

    我正在研究 WordPress 设计 我想创建一个自定义菜单 items wp get nav menu items Menu array order gt ASC orderby gt menu order post type gt na
  • Paypal IPN 发送“待处理”并以“多币种”为理由?

    我正在使用 Paypal IPN 从我的网站收款 该网站目前仅处于开发阶段 因此我建立了一个沙盒网站进行测试 并且我已经通过在英国注册的测试帐户非常成功地以英镑货币 我的居住国货币 进行付款 但是 我希望该网站能够检测访问者的原籍国并允许他
  • 纠正装饰器模式的一个大缺点

    不久前 我在重构一些游戏战斗代码时决定尝试装饰器模式 战斗者可以拥有各种被动能力 也可能是不同类型的生物 我认为装饰器可以让我在运行时以各种组合添加行为 因此我不需要数百个子类 我几乎已经完成了 15 个左右的被动能力装饰器 在测试中我发现
  • 使用 Laravel 4 验证多个文件上传

    如何在 Laravel 4 中验证上传文件的数组 我已将其设置为允许多个文件 并且已测试这些文件是否存在于 Input file files 数组中 但如何验证每个文件呢 这是我尝试过的 notesData array date gt In

随机推荐