使用WAMP调用未定义的函数sqlsrv_connect()

时间:2016-01-05 09:51:30

标签: php sql wamp driver connect

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

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

我的步骤:

  1. https://www.microsoft.com/en-us/download/details.aspx?id=20098
  2. 下载Microsoft驱动程序SQLSRV32.exe
  3. 从桌面上下载的.exe中提取文件
  4. php_sqlsrv_55_ts.dll php_pdo_sqlsrv_55_ts.dll 复制到 C:\ wamp \ bin \ php \ php5.5.12 \ ext
  5. 编辑 C:\ wamp \ bin \ php \ php5.5.12 \ 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 添加" extension = php_pdo_sqlsrv_55_ts.dll "和" extension = php_sqlsrv_55_ts.dll "
  7. 重新启动所有服务(我甚至尝试重新启动计算机,但没有任何作用)
  8. 我仍然得到错误......那么我错过了什么使这项工作?

5 个答案:

答案 0 :(得分:2)

仅安装PHP扩展是不够的,还需要为SQLServer®安装Microsoft®ODBCDriver 11 - 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使用

在Apache

下运行时,

C:\wamp\bin\apache\apache{version}\bin\php.ini仅由PHP使用

答案 1 :(得分:1)

您是否尝试使用wamp界面修改php.ini?

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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/,以获取主页 d。将任何示例html页面放置在c:\ wamp \ www文件夹中     http://localhost:8201/pagename.html

  3. SSSP,创建目录-项目名称,在此文件夹中保留.zip文件,config.xml,sssp_config.xml,widgets.ino文件     URL启动器中的http://hostname:8201/DirectoryName可在SSSP TV中安装小部件     阅读SSSP配置文件以获取有关SSSP的更多详细信息
  4. SQL Server配置 当前配置     WampServer 2.5 32位[SQL Server的64位成功案例更少]     PHP 5.5.12     Apache 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
    

答案 4 :(得分:0)

确保使用 php_error.log ( const min = Number('20') const max = Number('40') console.log(Math.floor(Math.random()*(max-min)+min)) )。

还有 wamp->php->php error logphp_sqlsrv_7_ts_x64.dll 使用 7.0.29 版本的 PHP,但使用 7.2.4。

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