商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > 【PHP】php操作MSSQL

【PHP】php操作MSSQL

  发布于2026-07-20 阅读(0)

扫一扫,手机访问

配置PHP操作MSSQL驱动

配置PHP连接MSSQL,这事儿说难不难,但细节上要是没把握好,确实容易卡住。我遇到过不少读者,装完驱动后各种报错,最后发现是DLL版本没选对。所以,咱们今天就把整个流程拆开,一步步讲清楚。

第一步,先把驱动给装上。找到SQLSRV58.exe这个安装包,找个地方建个新文件夹,专门放驱动文件。这样后续找起来方便,免得东翻西找。当然,如果你喜欢追新,也可以直接去微软官网下载最新版。

驱动装好后,重点来了:复制对应版本的DLL文件到PHP的ext目录下。在刚才安装驱动的文件夹里,找到适合你PHP版本的DLL。以PHPStudy里的PHP为例,其ext目录通常位于:

…/phpstudy_pro/Extensions/php/php7.3.4nts/ext/

需要把下面这两个文件复制过去:

php_sqlsrv_73_nts_x64.dll
php_pdo_sqlsrv_73_nts_x64.dll

接下来,修改PHP配置文件php.ini。这个文件一般在PHP安装目录的根下,比如:

…/phpstudy_pro/Extensions/php/php7.3.4nts/

找到它,打开,在文件末尾添加两行:

extension=php_sqlsrv_73_nts_x64.dll
extension=php_pdo_sqlsrv_73_nts_x64.dll

保存,重启Web服务。至此,驱动配置就算完成了。

PHP操作MSSQL

驱动装好了,接下来就是怎么用代码去操作数据库。先看连接数据库的代码,这是所有操作的基础:

function OpenConnection()
{
    try {
        $serverName = "localhost"; // 默认端口
        // $serverName = "localhost,3306"; // 指定端口
        $connectionOptions = array(
            "Database" => "AdventureWorks",
            "Uid" => "MyUser",
            "PWD" => "MyPassword"
        );
        $conn = sqlsrv_connect($serverName, $connectionOptions);
        if ($conn == false) {
            die(FormatErrors(sqlsrv_errors()));
        }
    } catch (Exception $e) {
        echo("Error!");
    }
}

连接成功后,执行读取操作就顺理成章了:

function ReadData()
{
    try {
        $conn = OpenConnection();
        $tsql = "SELECT [CompanyName] FROM SalesLT.Customer";
        $getProducts = sqlsrv_query($conn, $tsql);
        if ($getProducts == FALSE) {
            die(FormatErrors(sqlsrv_errors()));
        }
        $productCount = 0;
        while ($row = sqlsrv_fetch_array($getProducts, SQLSRV_FETCH_ASSOC)) {
            echo($row['CompanyName']);
            echo("
"); $productCount++; } sqlsrv_free_stmt($getProducts); sqlsrv_close($conn); } catch (Exception $e) { echo("Error!"); } }

最后,演示一下插入操作。注意这里用到了OUTPUT INSERTED.ProductID来获取新插入记录的ID:

function InsertData()
{
    try {
        $conn = OpenConnection();
        $tsql = "INSERT SalesLT.Product (Name, ProductNumber, StandardCost, ListPrice, SellStartDate) 
                 OUTPUT INSERTED.ProductID 
                 VALUES ('SQL Server 1', 'SQL Server 2', 0, 0, getdate())";
        $insertReview = sqlsrv_query($conn, $tsql);
        if ($insertReview == FALSE) {
            die(FormatErrors(sqlsrv_errors()));
        }
        echo "Product Key inserted is :";
        while ($row = sqlsrv_fetch_array($insertReview, SQLSRV_FETCH_ASSOC)) {
            echo($row['ProductID']);
        }
        sqlsrv_free_stmt($insertReview);
        sqlsrv_close($conn);
    } catch (Exception $e) {
        echo("Error!");
    }
}

这三个函数基本覆盖了日常开发中最常用的操作。当然,实际项目中还需要考虑错误处理、事务管理等问题,但底层的连接和基础CRUD,上面这些代码已经足够搭建起一个完整的操作框架了。

本文转载于:https://blog.csdn.net/weixin_36576175/article/details/107518840 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注