PHP - PDO SQLSRV - 连接字符串无效[87]

时间:2015-06-30 07:28:59

标签: php sql sql-server pdo

我正在尝试通过PHP连接到SQL Server 2008 R2。我使用了以下代码:

try {
    $server = "servername.do.ma.in\\MSSQLSERVER";
    $user = "username";
    $pass = "password";
    $db = "databasename";

    $dbh= new PDO('sqlsrv:Server = ' . $server . '; Database = ' . $db, $user, $pass);

    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo 'Verbindung fehlgeschlagen: ' . $e->getMessage();
}

但是当我运行此代码时,我收到以下错误:

 SQLSTATE[08001]: [Microsoft][ODBC Driver 11 for SQL Server]SQL Server Network Interfaces: Connection string is not valid [87]. 

是否有人知道此错误并知道该怎么做?

提前致谢。

解决方案:

未定义端口。以下代码对我有用。 我已将Port 1433添加到$ server Variable。

$server = "servername.do.ma.in, 1433";
    $user = "username";
    $pass = "password";
    $db = "databasename";

    $dbh = new PDO("sqlsrv:Server={$server};Database={$db};", $user, $pass);

1 个答案:

答案 0 :(得分:1)

这将有效:

$dbh = new PDO("sqlsrv:Server={$server};Database={$db};", $user, $pass);

如果它仍然无效,则连接变量有问题。

修改

这与您的问题类似:

http://laravel.io/forum/01-20-2015-sql-server-2012-db-connection-with-laravel-42