簡體   English   中英

將 PDO 連接到 MS SQL Server 2008 R2 命名管道提供程序:無法打開到 SQL Server 的連接 [53]

[英]Connecting PDO to MS SQL Server 2008 R2 Named Pipes Provider: Could not open a connection to SQL Server [53]

我的電腦已經安裝了 MS SQL Server 2008 R2 並安裝了數據庫,然后我安裝了XAMPP並為Apache創建了另一個端口,使其成為localhost:8080並收聽4433 然后安裝了OBDC ,嘗試使用連接

try {
$host = 'LOCAL';
$user = '****';
$pass = '****';

$dsn = "sqlsrv:Server=$host;Database=$db;";
$opt = [
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION
];
$pdo = new PDO($dsn, $user, $pass, $opt);

} catch (PDOException $e) {
    echo "No connection: " . $e->getMessage();
    exit;
}

但我不斷得到

No connection: SQLSTATE[08001]: [Microsoft][ODBC Driver 13 for SQL Server]Named Pipes Provider: Could not open a connection to SQL Server [53]. 

使用的extension=php_pdo_sqlsrv_71_ts_x86.dll

我已經關閉Windows 防火牆,在MS SQL 2008 配置Internet 選項中啟用管道連接啟用NetBIOS

$host不應該是"LOCAL"而應該是"localhost"

如果您在本地機器上的自定義端口上運行 SQL 服務器,則可以通過在主機后附加一個逗號來指定端口; 應用於您的代碼片段:

$host = "localhost";
// or, with a custom port
$host = "localhost,12345"

來源: http : //php.net/manual/en/ref.pdo-sqlsrv.connection.php#refsect1-ref.pdo-sqlsrv.connection-examples

如果您使用的是本地實例,則服務器字符串需要雙反斜杠:

<?php
$conn = new PDO('sqlsrv:Server=localhost\\SQLEXPRESS;Database=MyDatabase', 'MyUsername', 'MyPassword');
?>

請參閱 Daniel Klein 提供的原始答案: https : //www.php.net/manual/en/ref.pdo-sqlsrv.connection.php#121301

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM