宝塔面板 PHP 连接 SQL Server 完整教程

概述

在 Windows 宝塔面板环境下,配置 PHP 连接 SQL Server 数据库的完整步骤,包括驱动安装、PHP 扩展配置和连接代码。

第一步:安装 PHP

在宝塔面板中安装 PHP 7.4 版本(推荐此版本,sqlsrv 扩展兼容性最佳)。

第二步:开启 SQL Server 扩展

打开 PHP 配置文件 php.ini,找到并启用:

extension=php_sqlsrv.dll
extension=php_pdo_sqlsrv.dll

去掉前面的分号,保存后重启 PHP。

第三步:安装 ODBC 驱动

下载并安装 Microsoft ODBC Driver for SQL Server:

官方下载地址

安装后可在「ODBC 数据源管理器」中验证驱动是否正常。

第四步:验证扩展

创建 phpinfo.php 文件,内容为:

<?php phpinfo(); ?>

浏览器访问,搜索 "sqlsrv",确认扩展已加载。

第五步:PHP 连接代码

<?php
$serverName = "192.168.1.100";  // SQL Server IP 地址
$connectionOptions = array(
    "Database" => "数据库名",
    "Uid" => "用户名",
    "PWD" => "密码"
);

// 建立连接
$conn = sqlsrv_connect($serverName, $connectionOptions);

if ($conn === false) {
    die(print_r(sqlsrv_errors(), true));
}

// 执行查询
$query = "SELECT * FROM mrp_plan";
$result = sqlsrv_query($conn, $query);

if ($result === false) {
    die(print_r(sqlsrv_errors(), true));
}

// 处理结果
while ($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) {
    var_dump($row);
}

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

使用 PDO 方式(推荐)

<?php
try {
    $conn = new PDO(
        "sqlsrv:Server=192.168.1.100;Database=数据库名",
        "用户名",
        "密码"
    );
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $stmt = $conn->query("SELECT * FROM mrp_plan");
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        print_r($row);
    }
} catch (PDOException $e) {
    echo "连接失败: " . $e->getMessage();
}
?>

常见问题

问题原因解决
扩展未加载dll 文件缺失或版本不匹配确认 PHP 版本与 sqlsrv 版本对应
连接超时防火墙/端口未开放检查 1433 端口和 TCP/IP 协议
SSL 错误证书问题连接串加 Encrypt=no(仅开发环境)

标签: