PHP IIS7 MSSQL调用未定义函数sqlsrv_connect
作者:互联网
我有MSSQL Server 2008,MS WINDOWS SERVER 2008 RC2和PHP 5.4
php.info有行
[PHP_PDO_SQLSRV_54_NTS]
extension=php_pdo_sqlsrv_54_nts.dll
[PHP_PDO_ODBC]
extension=php_pdo_odbc.dll
[PHP_SYBASE_CT]
extension=php_sybase_ct.dll
[PHP_SQLSRV_54_NTS]
extension=php_sqlsrv_54_nts.dll
PHP信息在这里找到http://89.111.180.28/index.php
我看到带有扩展名php.ini的行,但没有看到带有php.info中扩展名SQLSRV的行…
用于连接到MSSQL SERVER我使用脚本
$conn_array = array (
"UID" => "user",
"PWD" => "passw",
"Database" => "database",
"Encrypt" => 1,
"TrustServerCertificate" => 1) ;
$conn2 = sqlsrv_connect('localhost' , $conn_array);
if ($conn2)
{
echo 'MSSQL Connection successful';
}
else
{
die( print_r( sqlsrv_errors(), true));
}
sqlsrv_close( $conn2 );
但我看到错误:
Fatal error: Call to undefined function sqlsrv_connect() in C:\inetpub\wwwroot\89.111.180.28\index.php on line 18
请告诉我为什么我有错误,以及如何做出正确的选择?
附注:服务器已重新启动.
解决方法:
我本人只是有这个问题.我终于把它修好了,所以我想分享一下.
问题是,尽管我安装了sqlsrv dll(复制到我的php / ext文件夹中),并且将它添加到了php.ini中,但在IIS中却被“禁用”了.
如果有人再次遇到相同的问题,请按以下逐步说明进行操作. (或者供我将来参考:)
> Download (and install) the SQL Server drivers(.dll)
>通过运行.exe,并在要求您在何处解压缩它们时键入php扩展文件夹的路径来安装它们.
>要找到您当前的扩展目录,请运行(cmd.exe)php -i |更多内容,然后查找extension_dir行. (对我来说,这是更多印刷的第四次出版了).或者,制作一个仅包含<?php phpinfo();的简单php文件. ?> ;,然后在浏览器中运行它.这将提供相同的信息,但格式更易于阅读.
>将扩展名添加到您的php.ini中
>要找到正确的php.ini,请运行php -i |再一次,寻找已加载的配置文件,或再次检查该简单的php脚本(强烈建议您使用它-这样可以节省您的时间和精力).您找到的路径是您需要编辑的文件.
>将以下几行添加到您的php.ini中,并将其保存:
[PHP_SQLSRV]
扩展= php_sqlsrv_56_nts.dll
>在IIS管理器中启用扩展
>在开始菜单中,键入IIS管理器,然后按Enter.
>单击左侧栏中的服务器名称
>单击PHP管理器
>在“ PHP扩展”下,单击“启用或禁用扩展”.
>如果您的扩展名不在“启用”下,请在“禁用”下查找.找到它后,右键单击它,然后在出现的上下文菜单中单击“启用”.
>测试以确保其有效
>打开您创建的phpinfo()页面(您做了,不是吗?),然后在Registered PHP Streams下查看.如果您在该列表中看到sqlsrv,那么您已设置好!
标签:iis-7,sql-server-2008,php 来源: https://codeday.me/bug/20191031/1976660.html