IIS上的PHP不';t加载sqlsrv扩展
我正在尝试创建一个页面,该页面可以通过PHP将表单中的数据提交到MSSQL数据库。我已经成功安装了PHP(IIS上的PHP不';t加载sqlsrv扩展,php,sql-server,iis,sqlsrv,Php,Sql Server,Iis,Sqlsrv,我正在尝试创建一个页面,该页面可以通过PHP将表单中的数据提交到MSSQL数据库。我已经成功安装了PHP(phpinfo()即使在远程计算机上也可以正常运行),但它不会加载。我知道我正在编辑正确的php.ini文件,因为我添加了另一个扩展名(wincache),并且加载良好,通过phpinfo()和get\u loaded\u extensions()确认 日志没有告诉我任何事情。IIS上的PHP管理器告诉我sqlsrv扩展文件已启用。我重新启动了网站、服务器和计算机,但一切都不正常 我在Win
phpinfo()
即使在远程计算机上也可以正常运行),但它不会加载。我知道我正在编辑正确的php.ini
文件,因为我添加了另一个扩展名(wincache),并且加载良好,通过phpinfo()
和get\u loaded\u extensions()
确认
日志没有告诉我任何事情。IIS上的PHP管理器告诉我sqlsrv扩展文件已启用。我重新启动了网站、服务器和计算机,但一切都不正常
我在Windows7 Ultimate机器上使用PHP7.1.1。它在x64模式下运行,非线程安全。我已经确保我启用的扩展文件是x64,非线程安全的。我不知道还有什么需要检查,或者我需要提供更多的信息
编辑:我按照建议运行了php cgi.exe
,结果出现了错误消息:
[31-Mar-2017 22:38:12 UTC] PHP Warning: PHP Startup: Unable to load dynamic library 'C:\Program Files\iis express\PHP\v7.1\ext\php_sqlsrv_7_nts_x64.dll' - The specified procedure could not be found.
in Unknown on line 0
[31-Mar-2017 22:38:17 UTC] PHP Warning: PHP Startup: Unable to load dynamic library 'C:\Program Files\iis express\PHP\v7.1\ext\php_pdo_sqlsrv_7_nts_x64.dll' - The specified procedure could not be found.
in Unknown on line 0
这是否意味着问题出在扩展DLL本身?我该怎么解决这个问题呢
edit2:ImClarky解决了这个问题,因为我显然使用了一种过时的扩展版本。我已经让它工作了,但现在我的身份验证失败了,原因我不明白:
function connect_sql() {
/* Specify server and connection attributes */
$serverName = "(local)";
/* Get UID and PWD from app-specific files */
$uid = file_get_contents("C:\AppData\uid.txt");
$pwd = file_get_contents("C:\AppData\pwd.txt");
$connectionInfo = array("UID" => $uid,
"PWD" => $pwd,
"Database" => "database_name");
/* Connect using SQL Server Auth */
$conn = sqlsrv_connect($serverName, $connectionInfo);
if ($conn === false)
{
echo "Unable to connect.</br>";
//die(print_r(sqlsrv_errors(), true));
die(print_errors());
}
else {
echo "Connection Successful";
}
/* Free connection resources */
sqlsrv_close($conn);
}
确保为php.ini使用的扩展文件夹添加.dll文件 还选择了与您运行的PHP相匹配的正确的SQLSRv驱动程序
SQLSRv您正在运行哪个版本的SQLSRv?来自codeplex的那个很旧。。。现在是最新版本的位置。除了前面的注释,如果需要新版本,请确保下载版本4.1.3或更高版本。以前的版本不支持PHP7.1。@ImClarky似乎做到了这一点,但现在我得到了身份验证错误。我觉得自己像个白痴一样被错误缠住了,但我已经确保在连接脚本中有正确的用户名和密码。我使用的例子来自。我将用脚本和错误消息编辑我的问题。
Unable to connect.
SQLSTATE: 28000
code: 18456
message: [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Login failed for user 'username'.
SQLSTATE: 28000
code: 18456
message: [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Login failed for user 'username'.