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

2022-08-30 13:11:23

我遇到了很多关于同一主题问题的帖子,但是我仍然无法解决它,所以我问。我正在尝试在我的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));
}

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

extension=c:/wamp/bin/php/php5.4.16/ext/php_sqlsrv_53_ts.dll

我的运行良好,服务和也是如此。我能够成功执行php.exe。但是,我无法连接到数据库所在的位置。请帮忙!wampserverwampapachewampsqldSQL Server 2008 R2

编辑1:wamp服务器正在运行wampmysql服务,而我正在尝试连接到.这可能是原因吗?我应该使用而不是?任何指针?SQL Server 2008 R2MySQLSQL

编辑2:当我运行时,我根本没有看到部分,尽管我已经添加到位于wamp服务器的bin文件夹中的文件。sqlsrvphpinfo()extension=php_sqlsrv_54_ts.dllphp.ini

enter image description here


答案 1

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

  • 版本
  • 体系结构(32/64 位)
  • 编译器 (VC9, VC10, VC11...)
  • 螺纹安全

常见的故障包括:

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

    php -d display_startup_errors=1 -d error_reporting=-1 -d display_errors -c "C:\Path\To\php.ini" -m
    

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

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

phpinfo()


答案 2

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

extension=c:/wamp/bin/php/php5.4.16/ext/php_sqlsrv_53_ts.dll

推荐