2016-07-25 9 views
1

似たような質問がありましたが、FreeTDSなどの特別なパッケージをインストールするためにサーバにアクセスすることで解決します。私たちはlinux serverが1と1でホストされているので、このようなアクセスはありません。ホストされたlinuxからリモートMSSQLサーバにアクセスするPHP

(ここでは上の他の誰かによって、以前の質問から)私のコードは次のとおりです。

try { 
    $hostname = "xx.xx.xx.xx"; 
    $port = xxxxx; 
    $dbname = "ClientDatabase"; 
    $username = "uuuu"; 
    $pw = "pppp"; 
    $dbh = new PDO ("dblib:host=$hostname:$port;dbname=$dbname","$username","$pw"); 
    } catch (PDOException $e) { 
    echo "Failed to get DB handle: " . $e->getMessage() . "\n"; 
    exit; 
    } 
    $stmt = $dbh->prepare("select name from master..sysdatabases where name = db_name()"); 
    $stmt->execute(); 
    while ($row = $stmt->fetch()) { 
    print_r($row); 
    } 
    unset($dbh); unset($stmt); 

私が取得エラーメッセージは次のとおりです。

Failed to get DB handle: could not find driver 

私は機能を追加することができますので、MSSQLサーバーがアクセス可能です必要に応じてそれに追加します。 MSSQLサーバもIIS7を実行していますが、PHPは実行していません。 IIS7についてはほとんど分かりませんが、ホストされているLinuxボックスではなくPHPスクリプトを実行する方が簡単でしょうか?

とにかく実際にMSSQLサーバーに接続できるかどうかアドバイスできますか?事前に

おかげで、

デイブ

答えて

0

あなたはmssql_connectを試みたことがありますか?ここで

構文です: mssql_connect([文字列$サーバー名[、文字列$名[、文字列$パスワード[、ブール$ new_linkが=偽]]]])

あなたの場合には、それは次のようになります。

$link = mssql_connect($hostname, $username, $pw); 
mssql_select_db($dbname, $link); 

$ hostnameにはMSSQLインスタンス名が含まれている必要があります。例えば私がいるよ「KALLESPC \ SQLEXPRESS」

+0

私は感謝 mssql_connectは、PHP 5.4 に廃止されていることを信じて、その$ DBH =新しいPDO( "DBLIBようです"、" $ username "、" $ pw ");次のようになります。 $ dbh = new PDO( "sqlsrv:Server = $ hostname:$ port; Database = $ dbname"、 "$ username"、 "$ pw"); まだ動作していませんが、前進しています。 – demsley

0

多くの試行錯誤の後。答えた者と他の人が同様の質問に答えた者に

try { 
    $hostname = "localhost"; 
    $port = 123456; 
    $dbname = "ClientDatabase"; 
    $username = "uuuu"; 
    $pw = "pppp"; 
    $dbh = new PDO ("sqlsrv:Server=$hostname,$port;Database=$dbname","$username","$pw"); 
    } catch (PDOException $e) { 
    echo "Failed to get DB handle: " . $e->getMessage() . "\n"; 
    exit; 
    } 
    $stmt = $dbh->prepare("select name from master..sysdatabases where name = db_name()"); 
    $stmt->execute(); 
    while ($row = $stmt->fetch()) { 
    print_r($row); 
    } 
    unset($dbh); unset($stmt); 

感謝。最終的にはそこにいた.... DBNAME = $ DBNAME; $ポート:ホスト= $ホスト名:

乾杯

デイブ

関連する問題