在windows上将PHP连接到SQL Server

在windows上将PHP连接到SQL Server,php,sql,sql-server,windows,Php,Sql,Sql Server,Windows,我正在尝试用PHP连接到SQL Server(MSSQL)数据库。我激活了DBO插件并尝试使用它,但是当我定义对象并运行代码时,我得到了错误:连接失败:找不到驱动程序 。从我的代码中可以看到,我已经验证了dbo驱动程序是否已加载。 我下载了一个答案中链接到的sqlsrv驱动程序,但仍然无法连接。我错过了什么?(两个文件index.php和submit.php位于同一目录中,这就是整个项目)((我在Windows计算机上,但这可能相关,也可能无关)) index.php: <html>

我正在尝试用PHP连接到SQL Server(MSSQL)数据库。我激活了DBO插件并尝试使用它,但是当我定义对象并运行代码时,我得到了错误:
连接失败:找不到驱动程序
。从我的代码中可以看到,我已经验证了dbo驱动程序是否已加载。 我下载了一个答案中链接到的sqlsrv驱动程序,但仍然无法连接。我错过了什么?(两个文件
index.php
submit.php
位于同一目录中,这就是整个项目)((我在Windows计算机上,但这可能相关,也可能无关))

index.php:

<html>
<head>

</head>
<body>
  <form class="my-form" action="submit.php">
      <input type="text" name="field" />
      <input type="submit" value="Submit" />
  </form>
</body>
</html>

submit.php:

<html>
<head>
</head>
<body>
<h1>page loaded</h1>
<h1><?php if (extension_loaded('pdo')) {
    echo 'pdo extension loaded by php';
} ?></h1>

<?php
$myServer = "xxxxxxxxxxxxxxxx";
$myUser = "xxxxxxx";
$myPass = "xxxxxx";
$myDB = "xxxxxxxxxxxx";


$serverName = $myServer; //serverName\instanceName

// Since UID and PWD are not specified in the $connectionInfo array,
// The connection will be attempted using Windows Authentication.
$connectionInfo = array( "Database"=>$myDB, "UID"=>$myUser, "PWD"=>$myPass);
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
     echo "Connection established.<br />";
}else{
     echo "Connection could not be established.<br />";
     die( print_r( sqlsrv_errors(), true));
}


?>
</body>
</html>

页面加载

PHP7中已删除mssql*扩展名

你应该考虑PDO。

编辑:

PDO for MSSQL需要适当的客户端库,您可以在此处找到:

不要让自己被版本号(不是PHP版本…)弄糊涂了。请查看说明,有些驱动程序仅适用于特定的MSSQL服务器版本

还请注意以下示例:

检查服务器错误日志中是否有任何错误消息。是否确实在服务器上安装了
mssql\u connect
扩展?如果没有,请与您的网络管理员联系安装。Lars在下面的回答中引用的php.net文章说,mssql扩展已在php7中删除。他建议改为PDO…可能是@ivan_pozdeev的复制品不,这是PDO和ms sql,不是mysql。好的,是的,这项功能肯定消失了,谢谢。我更新了上面的问题以显示我是如何更改代码的。好的,我也更新了我的答案。。希望有帮助;)ugg我下载了上面提到的驱动程序,它仍然不工作,所以我更新了上面的问题。为什么我仍然无法连接并得到错误?不幸的是,这并没有解决它,我仍然得到相同的错误“驱动程序未找到”。也许我把驱动程序安装错了?我从上面的链接下载了“php_sqlsrv_72_nts_x64”文件,将具有该名称的dll文件放入php extensions目录,将
extension=php_sqlsrv_72_nts_x64
添加到ini文件的
[extensions]
部分,然后重新启动计算机。加载PDO扩展,并在上面的代码中验证这一事实。我安装的唯一一个无法用代码验证的“驱动程序”就是那个,那么我正确安装了吗?好的,我修复了它并使它工作了。我将更新上面的代码。我只是没有在连接信息数组np中指定user和pwd。谢谢,我把你的答案标记为解决方案。谢谢你所做的一切!