![](/img/trans.png)
[英]Intermitant error Named Pipes Provider: Could not open a connection to 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.