数据库
首页 > 数据库> > PHP IIS7 MSSQL调用未定义函数sqlsrv_connect

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文件. ?&gt ;,然后在浏览器中运行它.这将提供相同的信息,但格式更易于阅读.
>将扩展名添加到您的php.ini中

>要找到正确的php.ini,请运行php -i |再一次,寻找已加载的配置文件,或再次检查该简单的php脚本(强烈建议您使用它-这样可以节省您的时间和精力).您找到的路径是您需要编辑的文件.
>将以下几行添加到您的php.ini中,并将其保存:

[PHP_SQLSRV]
扩展= p​​hp_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