两个使用相同凭据的odbc_connect调用

时间:2011-10-28 11:28:13

标签: php odbc

使用相同的凭据进行两次odbc_connect调用会发生什么?

更具体地说,我的问题,

  • 是否有两个活动连接,或者两个资源都是活动的 引用相同的连接?

  • 如果已连接,则进行第二次连接 凭借相同的凭据?

    <?php
        $user     = "root";
        $password = "root";
        $server   = "localhost";
        $db       = "dbo";
    
        $dsn      = "SERVER=$server; DRIVER=SQL Server; DATABASE=$db";
    
        $connection_1 = odbc_connect($dsn, $user, $password);
        //Do some stuff
        $connection_2 = odbc_connect($dsn, $user, $password);
        //Do some stuff
    ?>
    

我问的原因是因为我有一个封装整个连接过程的类,然后包含单独的php文档,每个文档都有自己的类实例,每个都使用相同的凭据进行连接尝试实例化。这意味着,如果我有3个实例,则会有3次使用相同凭据的连接尝试。

我通过使用链接的静态属性解决了这个问题,并在尝试再次连接之前检查链接是否已经使用过,但是我仍然很好奇发生了什么。

2 个答案:

答案 0 :(得分:0)

我使用MySQL GUI工具对此进行了测试,并尝试了您的概念(ODBC到MySQL)。至少在MySQL的情况下,它确实创建了两个不同的连接。

答案 1 :(得分:0)

我使用PHP 5.2和ODBC连接到MSSQL,它没有创建不同的连接。实际上 - 当我关闭一个连接打开时,另一个连接也被关闭了,所以它们可能是截然不同的,但都被一个错误关闭了。