Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法让php连接到sql。获取错误连接失败:php\u network\u getaddresses:getaddrinfo失败:未知此类主机。_Php_Mysql - Fatal编程技术网

无法让php连接到sql。获取错误连接失败:php\u network\u getaddresses:getaddrinfo失败:未知此类主机。

无法让php连接到sql。获取错误连接失败:php\u network\u getaddresses:getaddrinfo失败:未知此类主机。,php,mysql,Php,Mysql,我已经搜索了google和stackover flow,但无法找到这个问题的根源。我无法将以下php代码连接到SQL。这是一个简单的php web文档,我正在使用它来测试一些东西。SQL是sqlexpress 2016,它在安装了PHP7.x的IIS上运行。PHP代码执行得很好,所以我猜它与代码或数据库有关。我尝试过的事情: 我已经在php中运行了一个echo来解析名称,它解析得很好 我已经使用tcp从一个单独的服务器连接到sql服务器,并且连接良好 我尝试了PDO连接和mysqli,但都返回

我已经搜索了google和stackover flow,但无法找到这个问题的根源。我无法将以下php代码连接到SQL。这是一个简单的php web文档,我正在使用它来测试一些东西。SQL是sqlexpress 2016,它在安装了PHP7.x的IIS上运行。PHP代码执行得很好,所以我猜它与代码或数据库有关。我尝试过的事情:

  • 我已经在php中运行了一个echo来解析名称,它解析得很好
  • 我已经使用tcp从一个单独的服务器连接到sql服务器,并且连接良好
  • 我尝试了PDO连接和mysqli,但都返回了相同的错误
我使用的PDO代码是:

<?php
$servername = 'RemoteServerName\SqlInstance';
$username = 'iislogon';
$password = 'password';

try {
$conn = new PDO("mysql:host=$servername;dbname=netdata", $username, 
$password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully"; 
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
?>

mysqli代码是:

<?php
$servername = 'RemoteServerName\SqlInstance';
$username = 'iislogin';
$password = 'password';
$dbname = 'netdata';
?>
<?php $conn = new mysqli($servername, $username, $password, $dbname); ?>

<?php 
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} 
echo "Connected successfully";?>


两者都返回找不到主机的相同错误。还有哪些其他问题可能导致这种情况?我刚开始编写php代码,希望您能提供帮助。

我想您没有用另一个反斜杠来逃避反斜杠。试试这个:

<?php
$servername = 'RemoteServerName\\SqlInstance';
?>

我想你没有用另一个反斜杠来逃避你的反斜杠。试试这个:

<?php
$servername = 'RemoteServerName\\SqlInstance';
?>

mysqli和以mysql开头的PDO:应该连接到mysql,而不是SQLExpress

如果您想使用SQLExpress,您应该使用类似于或将pdo字符串调整为


再看一看。

mysqli和以mysql开头的PDO:应该连接到mysql,而不是SQLExpress

如果您想使用SQLExpress,您应该使用类似于或将pdo字符串调整为

也请看一看。

请看此说明,特别是:

通常,DSN由PDO驱动程序名称、冒号和PDO驱动程序特定的连接语法组成。更多信息可从PDO驱动程序特定文档中获得

您确定您的dsn是正确的,并且启用了PHP模块吗?请参见本说明,具体如下:

通常,DSN由PDO驱动程序名称、冒号和PDO驱动程序特定的连接语法组成。更多信息可从PDO驱动程序特定文档中获得


您确定您的dsn是正确的,并且启用了PHP模块吗?参见

这解决了我的问题。一旦我安装了sqlsrv扩展并将我的连接字符串更改为该字符串,它就解决了我的问题。谢谢,这解决了我的问题。一旦我安装了sqlsrv扩展并将我的连接字符串更改为该字符串,它就解决了我的问题。非常感谢。