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

求助:如何在域名环境下通过PHP连接自有SQL Server?

嘿,我明白你折腾这些环境的烦躁——WAMP/XAMPP自带的本地服务确实没法直接连外部SQL Server,IIS搭PHP又容易踩各种配置坑。我给你一套极简的本地PHP+SQL Server连接方案,不需要复杂的服务器部署,完全满足你本地测试、连接当前域名下SQL Server的需求,一步步来绝对能成:

第一步:跳过捆绑环境,用独立PHP搭建基础
  • 直接去PHP官网下载对应你系统位数的非线程安全(NTS)版本(比如Windows x64选PHP 8.2 NTS),解压到本地一个简单路径,比如 C:\php
  • 复制解压目录里的 php.ini-development 文件,改名为 php.ini,打开它修改3个关键配置:
    • 找到 extension_dir = "ext",去掉前面的分号,确保它指向PHP文件夹下的ext子目录
    • 找到(或者直接添加)extension=pdo_sqlsrv 和 extension=sqlsrv 两行,去掉前面的分号,开启SQL Server扩展
    • 找到 date.timezone,设置成你的时区,比如 date.timezone = Asia/Shanghai
第二步:安装匹配的SQL Server PHP驱动
  • 去微软官网下载Microsoft Drivers for PHP for SQL Server,一定要选和你PHP版本、系统位数完全匹配的驱动包(比如PHP 8.2 x64就对应下载8.2版本的x64驱动)
  • 解压驱动包后,把里面的 php_pdo_sqlsrv_xxx.dll 和 php_sqlsrv_xxx.dll 两个文件,复制到PHP的ext文件夹里(就是刚才的C:\php\ext)
  • 划重点:驱动版本和PHP版本不匹配的话,扩展绝对加载失败,一定要仔细核对!
第三步:用PHP内置服务器快速启动服务(不用IIS/WAMP)
  • 找个地方新建你的项目文件夹,比如 D:\php-sqlserver-test
  • 打开命令提示符(CMD),用cd命令切换到这个项目文件夹:cd D:\php-sqlserver-test
  • 输入命令启动PHP内置服务器:php -S localhost:8000
  • 这时候打开浏览器访问 http://localhost:8000,就能看到你的项目目录了——这个内置服务器足够你本地测试用,完全不用折腾IIS的复杂配置
第四步:编写连接SQL Server的测试代码

在你的项目文件夹里新建一个connect.php文件,复制下面的代码,替换成你的实际数据库信息:

<?php
// 替换成你的SQL Server连接信息
$serverName = "你的SQL Server服务器地址"; // 比如当前域名对应的服务器IP/机器名,比如 "192.168.1.100" 或者 "DESKTOP-XXXXXX"
$dbConfig = [
    "Database" => "你的目标数据库名",
    "Uid" => "数据库登录用户名",
    "PWD" => "数据库登录密码"
];

// 尝试建立连接
try {
    $conn = sqlsrv_connect($serverName, $dbConfig);
    if ($conn === false) {
        die(print_r(sqlsrv_errors(), true));
    }
    echo "<h3>✅ 连接SQL Server成功!</h3>";

    // 可选:测试一个简单查询
    $testQuery = "SELECT TOP 2 * FROM 你的测试表名";
    $queryResult = sqlsrv_query($conn, $testQuery);
    
    if ($queryResult === false) {
        die(print_r(sqlsrv_errors(), true));
    }

    echo "<h4>测试查询结果:</h4>";
    while ($row = sqlsrv_fetch_array($queryResult, SQLSRV_FETCH_ASSOC)) {
        echo "<p>";
        print_r($row);
        echo "</p>";
    }
    sqlsrv_free_stmt($queryResult);
} catch (Exception $e) {
    echo "<h3>❌ 连接失败:</h3>" . $e->getMessage();
}

// 关闭连接
sqlsrv_close($conn);
?>

替换完成后,在浏览器访问 http://localhost:8000/connect.php,就能看到连接和查询结果了。

常见坑点排查
  • 如果提示“找不到sqlsrv扩展”:检查驱动文件是否放到了正确的ext文件夹,php.ini里的扩展是否已经开启,驱动版本和PHP版本是否完全匹配
  • 如果连接失败:检查SQL Server是否允许本地连接(可以在SQL Server管理器里开启TCP/IP协议),防火墙是否开放了1433端口,用户名密码是否正确,目标数据库是否存在
  • 如果内置服务器启动失败:换个端口试试,比如php -S localhost:8080,避免端口被占用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:16:04