我正在尝试通过pdo_dblib连接到我的mac上的mssql服务器。我已将freetds.conf更新到我想要连接的主机。我的phpinfo告诉我,我把所有的司机连接起来都很好。下面是我编写的代码,用于测试我是否可以连接到服务器。
<?php
$servername = "IP";
$port = "port";
$username = "username";
$password = "password";
$myDB = "database";
try {
$conn = new PDO("dblib:dbname=$myDB;host=$servername:$port", "$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();
}
?>
但是我收到错误:
连接失败:SQLSTATE [](null)(严重性为0)
我尝试使用SQL Developer连接到mssql服务器并且工作正常。我一直试图解决这个问题一整天。可能是什么问题?谢谢!
答案 0 :(得分:0)
从连接字符串中的变量中删除引号 -
$conn = new PDO("dblib:dbname=$myDB;host=$servername:$port", $username, $password);
答案 1 :(得分:0)
我找到了答案!
您必须在/usr/local/Cellar/freetds/0.91/etc/freetds.conf中取消注释TDS版本协议。
在Why won't my server connect to a remote MSSQL server using PHP mssql_connect?
中找到解决方案但为什么我必须这样做......不知道......希望有人能给出一些解释。