SQLSRV PDO DSN字符串结尾

时间:2015-10-29 13:28:13

标签: php sql-server pdo sqlsrv

我一直在努力让mssql PDO扩展在PHP 4中工作,然后才意识到它没有。所以我设法在Windows Server 2012上加载了sqlsrv扩展,它似乎找到了驱动程序,并将其加载到PHP中,但是看起来我的DSN似乎不正确,我可以'弄清楚为什么......这是我的连接代码......

    $ebilling = new PDO('sqlsrv:'.$myHost, $myUser, $myPass);
    $ebilling->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

以下是我在网页上出现的错误...

object(PDOException)#2 (8) { ["message":protected]=> string(51)     "SQLSTATE[IMSSP]: The DSN string ended unexpectedly." ["string":"Exception":private]=> string(0) "" ["code":protected]=> string(5) "IMSSP" ["file":protected]=> string(54) "E:\Websites\myAccountErrorLog\config\mssql_connect.php" ["line":protected]=> int(16) ["trace":"Exception":private]=> array(2) { [0]=> array(6) { ["file"]=> string(54) "E:\Websites\myAccountErrorLog\config\mssql_connect.php" ["line"]=> int(16) ["function"]=> string(11) "__construct" ["class"]=> string(3) "PDO" ["type"]=> string(2) "->" ["args"]=> array(3) { [0]=> string(13) "sqlsrv:portal" [1]=> string(5) "ITDev" [2]=> string(7) "ITDevPW" } } [1]=> array(4) { ["file"]=> string(51) "E:\Websites\myAccountErrorLog\myaccounterrorlog.php" ["line"]=> int(8) ["args"]=> array(1) { [0]=> string(54) "E:\Websites\myAccountErrorLog\config\mssql_connect.php" } ["function"]=> string(7) "require" } } ["previous":"Exception":private]=> NULL ["errorInfo"]=> array(3) { [0]=> string(5) "IMSSP" [1]=> int(-65) [2]=> string(34) "The DSN string ended unexpectedly." } }

1 个答案:

答案 0 :(得分:2)

我相信上面的dsn引发错误,因为它错过了数据库名称。

  

$ ebilling = new PDO('sqlsrv:'。$ myHost,$ myUser,$ myPass);

您应该像在第一部分中一样指定数据库名称和主机。

  

ie:$ ebilling = new PDO(“sqlsrv:Server = $ myHost; database = $ myDatabase”,$ myUser,$ myPass);

我希望有所帮助。

相关问题