You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MAMP环境下使用PHP连接MSSQL数据库?

解决MAMP中PHP调用mssql_connect()报错的问题

这个错误的核心原因很明确:mssql_connect()属于PHP旧版的MSSQL扩展,已经被官方废弃且默认不再随PHP(包括MAMP自带的PHP版本)分发,所以你的PHP环境里根本没有加载这个扩展,自然会提示函数未定义。

下面是一步一步的解决方案,亲测有效:

  • 第一步:确认你的PHP版本和架构
    先创建一个info.php文件放在MAMP的htdocs目录里,内容如下:

    <?php phpinfo(); ?>
    

    访问这个页面,找到PHP Version(比如7.4.33)、Architecture(x86或x64)和Thread Safety(一般MAMP的PHP是启用TS的),这些信息是下载对应扩展的关键。

  • 第二步:下载微软官方的SQL Server扩展
    你需要下载微软提供的sqlsrv和pdo_sqlsrv扩展(这是现在PHP连接MSSQL的官方推荐方案),要选择和你PHP版本、线程安全状态、架构完全匹配的dll文件。

  • 第三步:放置扩展文件到MAMP的PHP扩展目录
    把下载好的两个dll文件(比如php_sqlsrv_74_ts_x64.dll和php_pdo_sqlsrv_74_ts_x64.dll)复制到MAMP的PHP扩展目录,路径一般是:
    C:\MAMP\bin\php\php[你的版本号]\ext\
    比如你的PHP版本是7.4.33,路径就是C:\MAMP\bin\php\php7.4.33\ext\

  • 第四步:修改php.ini启用扩展
    打开MAMP的PHP配置文件:在MAMP的Preferences窗口切换到PHP标签,点击Open php.ini按钮。在文件里找到Dynamic Extensions部分,添加以下两行(如果dll文件名带版本后缀,要写完整名称):

    extension=php_sqlsrv.dll
    extension=php_pdo_sqlsrv.dll
    
  • 第五步:重启MAMP并验证扩展加载
    重启MAMP的Apache服务器,然后刷新之前的info.php页面,搜索sqlsrv和pdo_sqlsrv,如果能找到对应的模块信息,说明扩展已经加载成功。

  • 第六步:替换代码中的连接逻辑
    现在你需要把原来的mssql_connect代码换成sqlsrv_connect的写法,举个实际的例子:
    旧代码(mssql方式):

    $server = "your-mssql-server";
    $user = "username";
    $pass = "password";
    $conn = mssql_connect($server, $user, $pass);
    if (!$conn) {
        die("连接失败");
    }
    

    新代码(sqlsrv方式):

    $serverName = "your-mssql-server"; // 格式可以是"IP\实例名"或者"IP,端口"
    $connectionOptions = [
        "Database" => "your-db-name",
        "Uid" => "username",
        "PWD" => "password"
    ];
    $conn = sqlsrv_connect($serverName, $connectionOptions);
    if ($conn === false) {
        die(print_r(sqlsrv_errors(), true)); // 打印详细错误信息方便排查
    }
    

额外注意事项

  • 如果你用的是PHP 7.0及以上版本,mssql扩展已经被完全移除,没有任何办法再启用它,必须使用sqlsrv或pdo_sqlsrv
  • 下载扩展时一定要匹配线程安全(TS)状态,MAMP的PHP默认是TS版本,不要选NTS(非线程安全)的扩展
  • 如果连接时还是报错,可以用sqlsrv_errors()获取详细错误信息,这比模糊的报错更容易排查问题

内容的提问来源于stack exchange,提问作者Anu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:15:51