检查您是否在 MSSQL Server 上设置了正确的身份验证模式:
https ://msdn.microsoft.com/en-us/library/ms188670.aspx
此外,您还有两种方法可以通过 PHP/PDO 连接到 MSSQL,方法是使用 PHP_PDO_ODBC 扩展,该扩展使用连接字符串中给出的 ODBC 驱动程序,或者使用您可以在此处找到的 PHP_PDO_SQLSRV_xx_TS 或 PHP_PDO_SQLSRV_xx_NTS 扩展(仅适用于 32 位 PHP!)https://www .microsoft.com/en-us/download/details.aspx?id=20098或在这里使用非官方的 64 位http://robsphp.blogspot.nl/2012/06/unofficial-microsoft-sql-server-driver.html
使用 PHP_PDO_SQLSRV_xx_(N)TS 扩展时的连接字符串:
$hostname='127.0.0.1';
$dbname='test';
$username='user';
$password='pw';
$dbDB = new PDO("sqlsrv:Server=$hostname;Database=$dbname", $username, $password);
使用 PHP_PDO_ODBC 扩展时的连接字符串:
//use any of these or check exact MSSQL ODBC drivername in "ODBC Data Source Administrator"
$mssqldriver = '{SQL Server}';
$mssqldriver = '{SQL Server Native Client 11.0}';
$mssqldriver = '{ODBC Driver 11 for SQL Server}';
$hostname='127.0.0.1';
$dbname='test';
$username='user';
$password='pw';
$dbDB = new PDO("odbc:Driver=$mssqldriver;Server=$hostname;Database=$dbname", $username, $password);
当测试一个使用 PHP_PDO_ODBC 扩展返回 66 条记录的简单查询时,大约需要 500 毫秒(对于所有三个 MSSQL ODBC 驱动程序),但在使用 64 位(!)PHP_PDO_SQLSRV_TS 时需要大约 5000 毫秒。慢了10倍!尚未尝试 32 位或 NTS 变体。我的开发 PC 是使用 WAMPx64 PHP 5.5.12 的 Windows 7 SP1,我使用了 PHP_PDO_SQLSRV_55_TS