使用PHP连接Microsoft SQL Server 2014时出现sqlsrv_connect未定义错误
sqlsrv_connect()函数未定义的问题 这个错误的核心原因是PHP未安装或未启用sqlsrv扩展,以下是具体解决步骤:
确认PHP环境信息
运行phpinfo()或者在命令行执行php -v和php -i | findstr "Architecture Thread Safety"(Windows)/php -i | grep -E "Architecture|Thread Safety"(Linux),获取PHP版本、系统架构(32/64位)、线程安全(TS/NTS)状态,这些信息是选择对应扩展的关键。下载匹配的sqlsrv扩展
选择与你的PHP版本、系统架构、线程安全状态完全匹配的sqlsrv扩展包,确保扩展支持Microsoft SQL Server 2014。扩展包通常包含php_sqlsrv.dll(核心扩展)和php_pdo_sqlsrv.dll(PDO驱动,可选)。安装扩展
将下载的.dll文件复制到PHP安装目录下的ext子文件夹中。配置PHP启用扩展
打开PHP的配置文件php.ini,添加以下两行(注意文件名要和你下载的扩展文件完全一致,比如针对PHP7.4 64位TS版本可能是php_sqlsrv_74_ts_x64.dll):extension=php_sqlsrv.dll extension=php_pdo_sqlsrv.dll保存配置后,重启你的Web服务器(Apache、IIS等)或PHP-FPM服务。
验证扩展是否生效
再次运行phpinfo(),搜索sqlsrv关键字,如果能看到对应的模块信息,说明扩展已成功启用;也可以在命令行执行php -m | findstr sqlsrv(Windows)/php -m | grep sqlsrv(Linux),查看输出是否包含sqlsrv。额外注意(Windows系统)
sqlsrv扩展依赖ODBC Driver for SQL Server,需安装对应版本的ODBC驱动(如ODBC 11或ODBC 17),确保驱动版本与扩展兼容。
内容的提问来源于stack exchange,提问作者Gowri Shankari Manohari

