我已经搜索了谷歌和堆栈流,并且无法深入到这个问题的底部。我无法获得以下PHP代码连接到SQL。它是一个简单的php web文档,我用来测试一些东西。 SQL是sqlexpress 2016,它在安装了php 7.x的IIS上运行。 PHP代码执行正常,因此我猜测它与代码或数据库的关系。我尝试过的事情:
我使用的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所以任何帮助将不胜感激。
答案 0 :(得分:1)
如果您想使用SQLExpress,则应使用sqlsrv_connect之类的内容,或将pdo字符串调整为SQLExpress compatible one。
同时查看this thread。
答案 1 :(得分:1)
请查看此说明http://php.net/manual/en/pdo.construct.php,具体而言:
通常,DSN包含PDO驱动程序名称,后跟冒号,后跟PDO驱动程序特定的连接语法。有关详细信息,请参阅PDO驱动程序特定的文档。
你确定你的dsn是正确的并且启用了PHP模块吗?见http://php.net/manual/en/ref.pdo-mysql.php
答案 2 :(得分:0)
我认为你没有用另一个反斜杠来逃避你的反斜杠。试试这个:
<?php
$servername = 'RemoteServerName\\SqlInstance';
?>