【问题标题】:PHP - PDO SQLSRV - Connection string is not valid [87]PHP - PDO SQLSRV - 连接字符串无效 [87]
【发布时间】:2015-09-16 21:18:32
【问题描述】:

我正在尝试通过 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]. 

有人知道这个错误并知道该怎么做吗?

提前致谢。


解决方案:

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

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

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

【问题讨论】:

    标签: php sql sql-server pdo


    【解决方案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

    【讨论】:

    • 还是报错,请问是logindata错误造成的吗?还是身份验证错误?
    • @JoshuaH。这是可能的。你看过我在编辑中发布的链接吗?
    • 行得通!谢谢。我会将解决方案添加到我的答案中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多