在windows上将PHP连接到SQL Server
我正在尝试用PHP连接到SQL Server(MSSQL)数据库。我激活了DBO插件并尝试使用它,但是当我定义对象并运行代码时,我得到了错误:在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>
连接失败:找不到驱动程序
。从我的代码中可以看到,我已经验证了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。谢谢,我把你的答案标记为解决方案。谢谢你所做的一切!