Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 调用sqlsrv_connect会导致500个内部服务器错误_Sql Server_Php 7_Internal Server Error_Sqlsrv - Fatal编程技术网

Sql server 调用sqlsrv_connect会导致500个内部服务器错误

Sql server 调用sqlsrv_connect会导致500个内部服务器错误,sql-server,php-7,internal-server-error,sqlsrv,Sql Server,Php 7,Internal Server Error,Sqlsrv,我正在运行: Windows Server 2016 64位 同一台服务器上的MSSQL Server 2016 PHP7.1 IIS 10 我有: 确保我可以使用下面代码中提供的凭据连接到我的SQL 已安装,并选择了SQLSRV40 将extension=php_sqlsrv_7_nts_x64.dll和extension=php_pdo_sqlsrv_7_nts_x64.dll添加到/ext文件夹 编辑my php.ini并添加extension=php_sqlsrv_7_nts_x6

我正在运行:

  • Windows Server 2016 64位
  • 同一台服务器上的MSSQL Server 2016
  • PHP7.1
  • IIS 10
我有:

  • 确保我可以使用下面代码中提供的凭据连接到我的SQL
  • 已安装,并选择了SQLSRV40
  • 将extension=php_sqlsrv_7_nts_x64.dll和extension=php_pdo_sqlsrv_7_nts_x64.dll添加到/ext文件夹
  • 编辑my php.ini并添加extension=php_sqlsrv_7_nts_x64.dll和extension=php_pdo_sqlsrv_7_nts_x64.dll,然后重新启动服务器
以下是我建立连接的代码:

$connectionInfo = array( "Database"=>$db, "UID"=>$username, "PWD"=>$password);
$conn = sqlsrv_connect( $serverName, $connectionInfo); 

if( $conn ) {
     echo "Connection established.<br />";
}else{ //Will not execute. As such, I have no idea what error(s) am I getting
     echo "Connection could not be established.<br />";
     die( print_r( sqlsrv_errors(), true));
}
我已经为此工作了2天,并遵循了许多论坛的建议,我不知道该尝试什么了。非常感谢各位专家的建议!:)

更新1:

我修改了下面的代码,它显示了一个NO

echo "Did it load? " . (extension_loaded('sqlsrv') ? "YES" : "NO");
echo "Did it load? " . (extension_loaded('pdo_sqlsrv') ? "YES" : "NO");

我不明白为什么它没有正确安装,因为dll已经放在扩展文件夹中,并且如我前面所述在php.ini中指定。

extension\u loaded()
要求的是扩展名而不是dll文件名。。。所以它应该是
extension\u-loaded('sqlsrv')
extension\u-loaded('pdo\u-sqlsrv')
。此外,您的测试将始终显示
YES
,您需要将三元表达式括在括号中。@ImClarky哦,不。。。我用扩展名替换了它,并添加了括号。现在,字符串显示正确,并显示“否”。为什么是“否”?我已经将dll放在扩展文件夹中,并将其添加到我的php.ini中。我还缺什么?看看。OP似乎和你有同样的问题。它成功了!!您可以将此作为答案发布,或者我将更新我的帖子以更新到您建议的帖子!:)
extension\u loaded()
需要扩展名而不是dll文件名。。。所以它应该是
extension\u-loaded('sqlsrv')
extension\u-loaded('pdo\u-sqlsrv')
。此外,您的测试将始终显示
YES
,您需要将三元表达式括在括号中。@ImClarky哦,不。。。我用扩展名替换了它,并添加了括号。现在,字符串显示正确,并显示“否”。为什么是“否”?我已经将dll放在扩展文件夹中,并将其添加到我的php.ini中。我还缺什么?看看。OP似乎和你有同样的问题。它成功了!!您可以将此作为答案发布,或者我将更新我的帖子以更新到您建议的帖子!:)
echo "Did it load? " . (extension_loaded('sqlsrv') ? "YES" : "NO");
echo "Did it load? " . (extension_loaded('pdo_sqlsrv') ? "YES" : "NO");