致命错误:调用未定义的函数sqlsrv_connect()

Sar*_*rah 31 php sql-server wamp

关于同一主题问题,我遇到了不少帖子,但是我仍然无法解决问题,所以我问.我想在我的php脚本中连接到sql.我的连接字符串是:

/* Specify the server and connection string attributes. */
$serverName = "xxx-PC\SQLExpress";
$connectionOptions = array("Database"=>"Salesforce");
$conn = sqlsrv_connect($serverName, $connectionOptions);
if($conn === false)
{
      die(print_r(sqlsrv_errors(), true));
}
Run Code Online (Sandbox Code Playgroud)

我已在我php.ini位于wamp文件夹下的文件中安装并包含以下内容C:\wamp\bin\php\php5.4.16:

extension=c:/wamp/bin/php/php5.4.16/ext/php_sqlsrv_53_ts.dll
Run Code Online (Sandbox Code Playgroud)

wampserver的运行正常wampapache,wampsqld服务也是如此.我能够成功执行php.exe.但是,我无法建立与SQL Server 2008 R2数据库所在位置的连接.请帮忙!

编辑1:当我尝试连接时,wamp服务器正在运行wampmysql服务SQL Server 2008 R2.这可能是原因吗?我应该使用MySQL而不是SQL?有什么指针吗?

编辑2:虽然我已经添加了位于wamp服务器的bin文件夹中的文件,但我根本看不到sqlsrv部分.phpinfo()extension=php_sqlsrv_54_ts.dllphp.ini

在此输入图像描述

Álv*_*lez 14

安装第三方扩展时,需要确保所有编译参数都匹配:

  • PHP版本
  • 架构(32/64位)
  • 编译器(VC9,VC10,VC11 ......)
  • 线程安全

常见故障包括:

  • 编辑错误的php.ini文件(这是典型的捆绑包); 正确的路径显示在phpinfo().
  • 忘记重启Apache.
  • 无法看到启动错误; 那些应该出现在Apache日志中,但您也可以使用命令行来诊断它,例如:

    php -d display_startup_errors=1 -d error_reporting=-1 -d display_errors -c "C:\Path\To\php.ini" -m
    
    Run Code Online (Sandbox Code Playgroud)

如果一切正常,您应该sqlsrv在命令输出中看到和/或phpinfo()(取决于您正在配置的SAPI):

[PHP模块]
bcmath
日历
核心
[...]
SPL
sqlsrv
标准
[...]

phpinfo()函数


Sar*_*rah 11

有助于我得到答案.php.ini在我的例子中,有两个文件位于wamp.一个在php文件夹下,另一个在C:\wamp\bin\apache\Apachex.x.x\bin文件夹中.通过sqlsrv_connect函数连接到SQL时,我们指的是php.ini文件apache夹中的文件.将以下内容(根据您的版本)添加到此文件中:

extension=c:/wamp/bin/php/php5.4.16/ext/php_sqlsrv_53_ts.dll
Run Code Online (Sandbox Code Playgroud)


Els*_*han 5

如果您使用的是Microsoft 驱动程序 3.1、3.0 和 2.0。请检查您的 PHP 版本已经安装了 IIS。

使用此脚本检查 php 版本:

<?php echo phpinfo(); ?>
Run Code Online (Sandbox Code Playgroud)

或者

如果您已经使用 Web 平台安装程序在 IIS 中安装了PHP 管理器,您可以从中检查版本。

然后:
如果您使用的是新的 PHP 版本 (5.6),请从此处下载驱动程序

对于低于 5.6 的 PHP 版本 - 请从此处下载驱动程序

  • PHP 驱动程序 3.1 版需要 PHP 5.4.32、PHP 5.5.16 或更高版本。
  • PHP 驱动程序 3.0 版需要 PHP 5.3.0 或更高版本。如果可能,请使用 PHP 5.3.6 或更高版本。
  • PHP 驱动程序 2.0 版驱动程序适用于 PHP 5.2.4 或更高版本,但不适用于 PHP 5.4。如果可能,请使用 PHP 5.2.13 或更高版本。

然后使用 PHP 管理器将下载的驱动程序添加到php config文件中。您可以按如下所示进行操作(浏览文件并按 OK)。 然后重启IIS服务器

在此处输入图片说明

如果此方法不起作用,请更改php 版本并尝试运行您的 php 脚本。 在此处输入图片说明

提示:php version把那个改成低一点,试试看是怎么回事。然后就可以下载相关的驱动了。