PHP PDO dblib无法工作。

3

我正在尝试连接托管在不同服务器上的 MS SQL 数据库。我可以按照以前的方式进行连接。

$myServer = "server name";
$myUser = "username";
$myPass = "pword";
$myDB = "dbname"; 

if (is_callable('mssql_connect')) {
    $link = mssql_connect($myServer, $myUser, $myPass);

    if (!$link) {
        die('connection failed');
    }   
} else {
    echo 'mssql_connect() is not supported on this environment';
}

//connection to the database
$dbhandle = mssql_connect($myServer, $myUser, $myPass);

//select a database to work with
$selected = mssql_select_db($myDB, $dbhandle)
  or die("Couldn't open database $myDB"); 

这个代码可以正常连接到ms sql server。但是,当我使用PDO dblib的时候,会出现以下错误:"SQLSTATE[01002] Adaptive Server connection failed (severity 9)"。

以下是我用于连接的代码,我已经检查过pdo是否已安装,并且dblib作为可选项可用。凭据都完全相同。

$myServer = "server name";
$myUser = "username";
$myPass = "pword";
$myDB = "dbname"; 

try {
  # MS SQL Server and Sybase with PDO_DBLIB
  $DBH = new PDO("dblib:host=$myServer;dbname=$myDB, $myUser, $myPass");
}
catch(PDOException $e) {
    echo $e->getMessage();
}

任何帮助都将不胜感激,因为我计划创建一个新的PHP应用程序来连接到这个MS SQL数据库,但未来计划将数据库迁移到MySQL,一旦所有旧的经典asp重建为php。
1个回答

5

PDO连接语法应该像这样:

$DBH = new PDO("dblib:host=$myServer;dbname=$myDB", $myUser, $myPass); //wrongly placed quotes

Manual


那个像魔法一样奏效了。谢谢你帮我避免更多的挫败感。 - user1535268

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接