【问题标题】:Call to undefined function sqlsrv_connect() with WAMP使用 WAMP 调用未定义的函数 sqlsrv_connect()
【发布时间】:2016-04-09 02:19:35
【问题描述】:

我知道这个问题已经在这个网站上被问过好几次了,但我真的开始怀疑我是不是疯了。

我的配置:WampServer 2.5 64bits (PHP 5.5.12, Apache 2.4.9)

我的步骤:

  1. https://www.microsoft.com/en-us/download/details.aspx?id=20098下载Microsoft Driver SQLSRV32.exe
  2. 从我桌面上下载的 .exe 中提取文件
  3. 复制php_sqlsrv_55_ts.dllphp_pdo_sqlsrv_55_ts.dllC:\wamp\bin\php\php5.5.12\ext
  4. 编辑 C:\wamp\bin\php\php5.5.12\php.ini 添加“extension=php_pdo_sqlsrv_55_ts.dll”和“extension=php_sqlsrv_55_ts .dll"
  5. 编辑 C:\wamp\bin\apache\apache2.4.9\bin\php.ini 添加“extension=php_pdo_sqlsrv_55_ts.dll”和“extension =php_sqlsrv_55_ts.dll"
  6. 重新启动所有服务(我什至尝试重新启动我的计算机,但没有任何效果)

我仍然收到错误...那么我缺少什么来完成这项工作?

【问题讨论】:

  • 我的设置完全相同。我只需要将它添加到 C:\wamp\bin\apache\apache2.4.9\bin\php.ini ,因为我只使用 sqlsrv_connect,所以只使用了 php_sqlsrv_55_ts.dll,但我猜 pdo 扩展不会受到伤害。请注意,没有其他任何工作.. 53/54/56 ... 或 7_ts_x86/x64

标签: php sql wamp driver connect


【解决方案1】:

我终于找到了导致问题的原因。我的 Wamp 是 64 位的,但 sqlsrv 驱动程序仅适用于 32 位版本。现在它完美运行了。

【讨论】:

  • 这对我来说是唯一的问题。来自我的 +1。
  • @qwertzuiop 你是怎么解决的?我有同样的问题。请帮忙
  • @YunusAslam 下载 32 位版本的 Wamp
  • @qwertzuiop 我让它与 64 位本身一起工作。刚刚使用了正确的 dll 文件。
【解决方案2】:

仅安装 PHP 扩展是不够的,您还需要安装 Microsoft® ODBC Driver 11 for SQL Server® - Windows

The ODBC drivers can be found here

还有newer drivers can be found here

此外,确保编辑正确的php.ini 文件的最佳方法是使用 wampmanager 菜单。所以在未来做:-

wampmanager -> PHP -> php.ini

这会将正确的 php.ini 加载到 yoru 编辑器中。

C:\wamp\bin\php\php{version}\php.ini 仅供 PHP CLI 使用

C:\wamp\bin\apache\apache{version}\bin\php.ini 仅在 Apache 下运行时由 PHP 使用

【讨论】:

    【解决方案3】:

    您是否尝试使用 wamp 接口修改 php.ini ?

    我知道这听起来很奇怪,但有时结果与使用浏览器直接编辑文件不同。 Wamp 以一种奇怪的方式管理这些文件,试一试......

    【讨论】:

      【解决方案4】:

      SQL Server爱好者安装和配置PhP的详细步骤:

      1. 安装 Wamp wampserver2.5-Apache-2.4.9-Mysql-5.6.17-php5.5.12-32b.exe
      2. 配置 PhP 一种。更新配置文件 大拇指是 一世。更改端口 ii.从拒绝更改为授予 iii.从无更改为允许 iii.将顺序从拒绝、允许更改为允许、拒绝

        C:\wamp\bin\apache\apache2.4.9\conf\httpd.conf
        Line # 62, 63
        Listen 127.0.0.1:8201
        Listen [::0]:8201
        
        Line # 240
        <Directory />
            AllowOverride all
            #Require all granted
            Order allow,deny
            Allow from all
        </Directory>
        
        Line #274
        AllowOverride all
        
        Line #282
            Order allow,deny
            Allow from all
        Line #299
        Require all granted
        

        b.如果 Wamp 正在运行,请退出并重新启动 C。在浏览器中输入http://localhost:8201/,获取wamp主页 d。将任何示例 html 页面放在 c:\wamp\www 文件夹中 http://localhost:8201/pagename.html

      3. SSSP,创建目录 - 项目名称,在此文件夹中保留 .zip 文件、config.xml、sssp_config.xml、widgets.ino 文件 在 URL Launcher 中 http://hostname:8201/DirectoryName 在 SSSP TV 中安装小部件 有关 SSSP 的更多详细信息,请阅读 SSSP 配置文件
      4. SQL 服务器配置 当前配置 WampServer 2.5 32bits [SQL Server 64 位成功案例较少] PHP 5.5.12 阿帕奇 2.4.9

        Steps:
        
        a. Download Microsoft Driver SQLSRV32.exe from https://www.microsoft.com/en-us/download/details.aspx?id=20098. 
        b. Extract the files from the .exe downloaded on my temp folder
        c. Copy php_sqlsrv_55_ts.dll and php_pdo_sqlsrv_55_ts.dll into C:\wamp\bin\php\php5.5.12\ext folder
        d. Or Copy dlls from DLL folder to C:\wamp\bin\php\php5.5.12\ext folder
        e. Edit C:\wamp\bin\php\php5.5.12\php.ini add
            extension=php_pdo_sqlsrv_55_ts.dll
            extension=php_sqlsrv_55_ts.dll
        f. Edit C:\wamp\bin\apache\apache2.4.9\bin\php.ini add 
            extension=php_pdo_sqlsrv_55_ts.dll
            extension=php_sqlsrv_55_ts.dll
        g. Install Microsoft® ODBC Driver 11 64 bit or 32 bit as per your OS. My OS is 64 bit. The ODBC drivers can be found @ https://www.microsoft.com/en-us/download/details.aspx?id=36434 or in the folder ODBC
            And newer drivers can be found @ https://www.microsoft.com/en-us/download/details.aspx?id=20098
        e. Restart all services / Restart computer
        f. Place Sample php files in c:\wamp\www\TestWeb folder and browse http://localhost:8201/TestWeb/page.php
        g. Change host name, db name, uid and pwd as per your SQL server credentials
        

      【讨论】:

        【解决方案5】:

        确保使用 php_error.log (wamp-&gt;php-&gt;php error log)。

        php_sqlsrv_7_ts_x64.dllphp_pdo_sqlsrv_7_ts_x64.dll 正在使用 7.0.29 版本的 PHP,但 不是 使用 7.2.4。

        并且重启服务还不够,退出并运行 Wamp。

        【讨论】:

          【解决方案6】:

          它适用于 64 位或 32 位,只需为您的操作系统下载正确的 dll 文件并更新您的 php.ini 文件。

          【讨论】:

            猜你喜欢
            • 2017-12-05
            • 1970-01-01
            • 2016-08-26
            • 1970-01-01
            • 2016-05-30
            • 2020-07-13
            • 2016-09-08
            • 2015-04-04
            • 1970-01-01
            相关资源
            最近更新 更多