php 到 mssql 实例的 pdo 连接

php pdo connection to mssql instance

我 运行 从 PHP 连接到 MSSQL 数据库时遇到问题。

我们在同一个 linux 服务器上有 2 个应用程序。

数据库位于 MSSQL 服务器的 "instance" 中这一事实似乎是唯一的区别。

文档似乎没有指定如何连接到实例中的数据库。

示例(伪)代码:

<?php
$host="10.0.0.12";
$instance="specific"
$database="my-database"
$username="username";
$password="password";

$pdo = new PDO("dblib:host=${host}\${instance};database=${database}", $username, $password);

这无法连接,大多数情况下会出现非常无用的消息,例如:

SQLSTATE[HY000] Unable to connect: Adaptive Server is unavailable or does not exist (severity 9)

我已经尝试过许多不同的 DSN 以查看哪些可能有效,但 none 似乎有效。

我可以使用什么 DSN 来实现此功能?

也欢迎从 PHP 连接到此数据库的替代方法作为建议。

每个 MSSQL 服务器实例都在其自己的端口号上运行。 您可以将 MSSQL Server 实例配置为使用固定端口号而不是动态端口号(默认设置)。

配置固定端口后,您只需使用 PDO 连接到该端口号即可。不再需要在 dsn 或任何其他设置中引用实例。