使用相同的凭据进行两次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次使用相同凭据的连接尝试。
我通过使用链接的静态属性解决了这个问题,并在尝试再次连接之前检查链接是否已经使用过,但是我仍然很好奇发生了什么。
答案 0 :(得分:0)
我使用MySQL GUI工具对此进行了测试,并尝试了您的概念(ODBC到MySQL)。至少在MySQL的情况下,它确实创建了两个不同的连接。
答案 1 :(得分:0)
我使用PHP 5.2和ODBC连接到MSSQL,它没有创建不同的连接。实际上 - 当我关闭一个连接打开时,另一个连接也被关闭了,所以它们可能是截然不同的,但都被一个错误关闭了。