在 PHP 中打开新的 SQL Server 连接

Posted

技术标签:

【中文标题】在 PHP 中打开新的 SQL Server 连接【英文标题】:Open new SQL Server connection in PHP 【发布时间】:2010-02-18 14:28:55 【问题描述】:

我有一个打开的 SQL Server 连接,需要在保持第一个连接的同时打开和关闭另一个连接。我无法保留原始资源 ID。

    连接A(可能打开也可能不打开) 打开连接B 使用连接 B 执行一些查询 关闭连接B 继续使用连接 A

【问题讨论】:

我认为您在某处遗漏了一个问号。还有,为什么不能持有资源ID? 【参考方案1】:

如果您使用以下方法建立连接,您可能没有真正的“A”和“B”连接。如果您使用 '$new_link' 参数,它还可以为您提供恢复先前打开的 'A' 连接的方法。

资源 mssql_connect ([ string $servername [, string $username [, string $password [, bool $new_link ]]]])

来自 php.net http://www.php.net/manual/en/function.mssql-connect.php

新链接 如果使用相同的参数对 mssql_connect() 进行第二次调用,则不会建立新链接,而是返回已打开链接的链接标识符。此参数修改此行为并使 mssql_connect() 始终打开一个新链接,即使之前使用相同的参数调用了 mssql_connect()。

所以基本上,如果您创建连接 A,然后使用 new_link true 创建连接 B,然后使用并关闭连接 B,您下一次使用 new_link false 调用 mssql_connect 将返回连接 A。

我尚未对此进行测试,但文档显示它是可能的,虽然它可能无法解决您的问题,但您可以使用它。

但是我很好奇为什么你不能保持 A 以及为什么你需要第二个连接。

【讨论】:

我看了看,问题是当我关闭“B”时,即使使用新链接,所有连接也会丢失。我无法保存“A”的资源 ID,因为它是根深蒂固的代码。 您确定“B”与“A”真的不同吗?正如我所提到的,如果您多次调用 mssql_connect 而不将 new_link 设置为 true,您只会返回相同的链接,因此在这种情况下关闭“B”将关闭“A”。

以上是关于在 PHP 中打开新的 SQL Server 连接的主要内容,如果未能解决你的问题,请参考以下文章

解决PHP5.4.7 连接 MsSQL Server 2012时出现命名管道提供程序: 无法打开与 SQL Server 的连接

java代码连接本地SQL server数据库总结

java代码连接本地SQL server数据库总结

Apache 不会使用 PHP 连接到 SQL Server

PHP 中 Microsoft SQL Server 的连接参数

如何在xampp中使用php连接sql server