搜索
首页后端开发php教程PHP数据库学习之怎样一次执行多条SQL命令?

在之前的文章中给大家带来了《PHP中获取SQL的查询结果的常用函数整理(实例详解)》,其中详细的介绍了PHP中查询数据库时常用的几个函数,本篇我们来看一下怎样一次执行多条SQL命令的相关知识。希望对大家有帮助!

PHP数据库学习之怎样一次执行多条SQL命令?

在上篇文章中我们给大家介绍了获取SQL的查询结果的常用函数,通过不同的函数来查询数据返回的形式不同,运行mysqli_query() 函数每次只能执行一条SQL命令,在PHP中有一个函数可以让代码一次执行多条SQL命令,那就是mysqli_multi_query() 函数,接下来让我们一起来了解一下mysqli_multi_query() 函数吧。

<strong><span style="font-size: 20px;">mysqli_multi_query()</span></strong> 函数

在我们前面介绍的 mysqli_query() 函数的时候,运行该函数每次只能执行一条SQL命令,但是想要执行多条SQL命令的时候,mysqli_query() 函数就不能满足我们了,这时候我们就需要通过mysqli_multi_query() 函数来实现一次执行多条 SQL 命令。

mysqli_multi_query() 函数的语法格式如下:

mysqli::multi_query(string $query)

这是面向对象的写法,下面是面向过程的写法:

mysqli_multi_query(mysqli $link, string $query)

其中需要注意的是:

  • $query  表示为要查询的 SQL 语句

  • $link  表示为使用 mysqli_connect() 函数返回的链接标识

  • $query   表示参数,其中可以包含多条 SQL 命令,每条 SQL 命令之间使用分号;分隔。如果第一条 SQL 命令在执行时没有出错,那么这个函数就会返回 TRUE,否则将返回 FALSE。

接下来我们通过示例来看一下mysqli_multi_query() 函数的使用,来执行多条SQL命令,示例如下:

<?php
    $host     = &#39;localhost&#39;;
    $username = &#39;root&#39;;
    $password = &#39;root&#39;;
    $dbname   = &#39;test&#39;;
    $mysql    = new Mysqli($host, $username, $password, $dbname);
    if($mysql -> connect_errno){
        die(&#39;数据库连接失败:&#39;.$mysql->connect_errno);
    }else{
        $sql    = &#39;select id,name from user;&#39;;  // SQL 语句
        $sql    .= &#39;select sex,age from user&#39;;  // SQL 语句
        if($mysql -> multi_query($sql)){
            do{
                if ($result = $mysql -> store_result()) {
                    while ($row = $result->fetch_row()) {
                        print_r($row);
                    }
                    $result->free();
                }
                if ($mysql -> more_results()) {
                    echo &#39;<hr>&#39;;
                }else{
                    break;
                }
            } while ($mysql -> next_result());
        }
        $mysql -> close();
    }
?>

输出结果:

1027.10.png

上述结果通过mysqli_multi_query() 函数完成了执行多条SQL命令,

其中我们需要注意的是:

因为 mysqli_multi_query() 函数能够连接执行一个或多个查询,而每条 SQL 命令都可能返回一个结果,在必要时需要获取每一个结果集。所以对该函数返回结果的处理也有了一些变化,第一条查询命令的结果要用 mysqli_use_result() mysqli_store_result() 函数来读取。

也可以使用 mysqli_store_result() 函数将全部结果立刻取回到客户端,而且这么做的效率更高。另外,可以使用mysqli_more_results() 函数检查是否还有其他结果集。

如果想对下一个结果集进行处理,可以使用 mysqli_next_result() 函数获取下一个结果集,有下一个结果集时该函数返回 TRUE,没有时返回 FALSE,在有下一个结果集的情况下,也需要使用  mysqli_use_result()mysqli_store_result() 函数来读取结果集的内容。

上述使用的是面向对象的方法,接下来看一下面向过程的方法,示例如下:

<?php
    $host     = &#39;localhost&#39;;
    $username = &#39;root&#39;;
    $password = &#39;root&#39;;
    $dbname   = &#39;test&#39;;
    $link     = @mysqli_connect($host, $username, $password, $dbname);
    if($link){
        $sql    = &#39;select id,name from user;&#39;;  // SQL 语句
        $sql    .= &#39;select sex,age from user&#39;;  // SQL 语句
        $result = mysqli_multi_query($link, $sql);        // 执行 SQL 语句,并返回结果
        do{
            if($data = mysqli_use_result($link)){
                while ($row = mysqli_fetch_row($data)) {
                    print_r($row);
                }
                mysqli_free_result($data);
            }
            if(mysqli_more_results($link)){
                echo &#39;<hr>&#39;;
            }else{
                break;
            }
        } while (mysqli_next_result($link));
        mysqli_close($link);
    }else{
        echo &#39;数据库连接失败!&#39;;
    }
?>

输出结果与上述结果相同,由此我们便通过mysqli_multi_query() 函数一次性完成多条SQL命令。

大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。

以上是PHP数据库学习之怎样一次执行多条SQL命令?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
高流量网站的PHP性能调整高流量网站的PHP性能调整May 14, 2025 am 12:13 AM

TheSecretTokeEpingAphp-PowerEdwebSiterUnningSmoothlyShyunderHeavyLoadInVolvOLVOLVOLDEVERSALKEYSTRATICES:1)emplactopCodeCachingWithOpcachingWithOpCacheToreCescriptexecution Time,2)使用atabasequercachingCachingCachingWithRedataBasEndataBaseLeSendataBaseLoad,3)

PHP中的依赖注入:初学者的代码示例PHP中的依赖注入:初学者的代码示例May 14, 2025 am 12:08 AM

你应该关心DependencyInjection(DI),因为它能让你的代码更清晰、更易维护。1)DI通过解耦类,使其更模块化,2)提高了测试的便捷性和代码的灵活性,3)使用DI容器可以管理复杂的依赖关系,但要注意性能影响和循环依赖问题,4)最佳实践是依赖于抽象接口,实现松散耦合。

PHP性能:是否可以优化应用程序?PHP性能:是否可以优化应用程序?May 14, 2025 am 12:04 AM

是的,优化papplicationispossibleandessential.1)empartcachingingcachingusedapcutorediucedsatabaseload.2)优化的atabaseswithexing,高效Quereteries,and ConconnectionPooling.3)EnhanceCodeWithBuilt-unctions,避免使用,避免使用ingglobalalairaiables,并避免使用

PHP性能优化:最终指南PHP性能优化:最终指南May 14, 2025 am 12:02 AM

theKeyStrategiestosiminificallyBoostphpapplicationPermenCeare:1)useOpCodeCachingLikeLikeLikeLikeLikeCacheToreDuceExecutiontime,2)优化AtabaseInteractionswithPreparedStateTemtStatementStatementSandProperIndexing,3)配置

PHP依赖注入容器:快速启动PHP依赖注入容器:快速启动May 13, 2025 am 12:11 AM

aphpdepentioncontiveContainerIsatoolThatManagesClassDeptions,增强codemodocultion,可验证性和Maintainability.itactsasaceCentralHubForeatingingIndections,因此reducingTightCightTightCoupOulplingIndeSingantInting。

PHP中的依赖注入与服务定位器PHP中的依赖注入与服务定位器May 13, 2025 am 12:10 AM

选择DependencyInjection(DI)用于大型应用,ServiceLocator适合小型项目或原型。1)DI通过构造函数注入依赖,提高代码的测试性和模块化。2)ServiceLocator通过中心注册获取服务,方便但可能导致代码耦合度增加。

PHP性能优化策略。PHP性能优化策略。May 13, 2025 am 12:06 AM

phpapplicationscanbeoptimizedForsPeedAndeffificeby:1)启用cacheInphp.ini,2)使用preparedStatatementSwithPdoforDatabasequesies,3)3)替换loopswitharray_filtaray_filteraray_maparray_mapfordataprocrocessing,4)conformentnginxasaseproxy,5)

PHP电子邮件验证:确保正确发送电子邮件PHP电子邮件验证:确保正确发送电子邮件May 13, 2025 am 12:06 AM

phpemailvalidation invoLvesthreesteps:1)格式化进行regulareXpressecthemailFormat; 2)dnsvalidationtoshethedomainhasavalidmxrecord; 3)

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境