3

別のサーバーセットでホストされているMSSQLデータベースに接続しようとしています。古い方法で接続できます。

$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"); 

これは、mssqlサーバーに接続するのに問題なく機能します。PDO dblibを試してみると、「SQLSTATE [01002] Adaptive Server接続に失敗しました(重大度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();
}

このMSSQLdbに接続するためにphpで新しいアプリケーションを作成することを計画しているので、助けていただければ幸いですが、将来的には、古いクラシックaspがすべてphpに再構築されたら、dbをMysqlに移行する予定です。

4

1 に答える 1

5

PDO接続構文は次のようになっているはずです。

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

マニュアル

于 2012-12-03T17:25:04.277 に答える