MSSQL使用PDO进行连接

时间:2015-07-09 20:21:53

标签: php mysql sql-server pdo

我正在尝试通过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服务器并且工作正常。我一直试图解决这个问题一整天。可能是什么问题?谢谢!

2 个答案:

答案 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?

中找到解决方案

但为什么我必须这样做......不知道......希望有人能给出一些解释。