尝试使用PDO通过PHP连接到远程Microsoft SQL Server时出现的问题

尝试使用PDO通过PHP连接到远程Microsoft SQL Server时出现的问题,php,sql-server,pdo,Php,Sql Server,Pdo,我正在尝试使用HTML5、CSS、Javascript和PHP制作一个简单的web应用程序。该应用程序的目的是从远程Microsoft SQL Server数据库中提取数据,并将数据放入主要基于过期数据的计划表中。我有我的大部分框架,我只是有很多麻烦试图拉数据从数据库。我尝试了许多不同的驱动程序设置,除了砖墙之外,我似乎什么都打不到 我尝试过的一些设置包括: <code> try { $conn = new PDO("sqlsrv:server

我正在尝试使用HTML5、CSS、Javascript和PHP制作一个简单的web应用程序。该应用程序的目的是从远程Microsoft SQL Server数据库中提取数据,并将数据放入主要基于过期数据的计划表中。我有我的大部分框架,我只是有很多麻烦试图拉数据从数据库。我尝试了许多不同的驱动程序设置,除了砖墙之外,我似乎什么都打不到

我尝试过的一些设置包括:

    <code>
    try {
            $conn = new PDO("sqlsrv:server=$hostname; database=$dbname", $username, $pw);
           $conn->setAttribute(PDO:: ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
           echo"Connected Successfully";
        }
        catch(PDOException $e){
            echo "Connection failed: " . $e->getMessage();
        }
</code>

and

<code>
    $dsn = "sqlserver:host=$hostname;dbname=$dbname;port=$port;charset=utf8");
       $opt = [
            PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
            PDO::ATTR_EMULATE_PREPARES   => false,
    ];

    $pdo = new PDO($dsn, $username, $pw, $opt);
    </code>
我不是最精通PHP的,我正在努力变得更好。但是,近一周来,我一直在为这一问题头痛不已。任何帮助都将不胜感激

事先非常感谢

编辑:对于任何稍后来尝试找到类似问题答案的人,我不确定我做了什么。我从来没有编辑过php.ini,但真正有效的设置是

try {
        $conn = new PDO("sqlsrv:Server=<IP ADDRESS>,<PORT>;Database=<DBNAME>", $username, $pw);
       $conn->setAttribute(PDO:: ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
       echo"Connected Successfully";
    }
    catch(PDOException $e){
        echo "Connection failed: " . $e->getMessage();
    }
试试看{
$conn=newpdo(“sqlsrv:Server=,;Database=,$username,$pw);
$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_异常);
echo“连接成功”;
}
捕获(PDO$e){
echo“连接失败:”..e->getMessage();
}
如果您仍然有问题,可以使用此选项打印所有已安装的驱动程序:

foreach(PDO::getAvailableDrivers()as $driver){
          if($driver==NULL){
              echo"No PDO Drivers were found";
          }else{
              echo $driver . "<br />";
foreach(PDO::getAvailableDrivers()作为$driver){ 如果($driver==NULL){ echo“未找到PDO驱动程序”; }否则{ echo$driver。“
”;
您使用的是什么版本的SQL Server?您使用的是Windows身份验证吗?您是否收到任何错误消息?这是SQL Server 9.0.3042,我只是尝试使用我设置的PHP登录。但是,我不知道我可以使用Windows身份验证。这是我的登录,还是会根据使用它的人而有所不同?以及我收到的唯一错误消息是服务器正在超时编辑:我今天刚重新启动它,它第一次连接可能是某些设置没有保存。我真的不确定。谢谢你的帮助!谢谢你!这对我也很有用!