mysqli扩展库的批量操作和事务处理

mysql-三种大批量插入和导出数据 用途:如果数据已经在服务器上作为一个文件存在,或者可以通过网络传输到服务器上,那么使用LOAD DATA INFILE通常是最快的方法之一。是 LOAD DATA INFILE 命令中的一个选项,用于指示 MySQL 在导入数据时跳过文件的前几行。如果 CSV 文件中的列顺序与目标表不匹配,或者你想只导入部分列,可以指定列名(column1, column2, column3);相比其他方法,LOAD DATA INFILE通常要快得多,因为它直接读取文件内容并加载到表中,绕过了标准的SQL解析器。 阅读详情

php和jdbc一样也可以批量处理数据和进行事务处理,php要实现这2种操作还是很简单的,下面就来分享下我的学习经验

1.批量查询数据

mysqli处理批量查询可以使用multi_query来查询数据,但是sql的写法有限制写法只能是   sql语句1;sql语句2;sql语句3   ,查询结果也是mysql资源类型,如果要得到查询结果可以使用store_result()来分别获取每一组查询结果,之后用fetch_row或者其他函数获取数据行,之后遍历即可,每遍历完一组需要释放数据结果集。要判断是否还有数据可以使用next_result()来判断,千万要记得用more_results()来避免next_result()出现的异常,最后一步就是关闭数据库连接了。

代码如下:

<?php
     $mysqli=new mysqli("localhost", "root", "123456","student");
     if($mysqli->connect_error){
       die("数据库连接失败:".$mysqli->connect_error);
     }
     $sql="select * from m_student;";
     $sql.="select * from m_user";
     if($mysqli->multi_query($sql)){

        
         do{
         
            if($result= $mysqli->store_result()){
                 
                while($row=$result->fetch_row()){
                    foreach($row as $key=>$val){
                       echo "---".$val;
                    }
                   echo "</br>";
                }
                $result->free();
               
               
                if(!$mysqli->more_results()){
                       break;
                }
               echo "****************************";
               echo "</br>";
         }  

         
        }while($mysqli->next_result());

     }else{
          echo $mysqli->error();
      }
    $mysqli->close();

?>

来看看程序的运行结果

到这里批量处理数据就告一段落了

2.mysqli扩展库的事务处理

事务的特点我就不多说了总结起来就是原子性,隔离性,一致性,持久性,mysqli扩展库使用autocommit,commit,rollback来处理事务,在这之前先理解下保存点的问题。mysql数据库也和其他数据库一样,也可以创建保存点,回滚数据。下面是我对数据库事务的测试

下面自然就是代码的测试了,如下所示

<?php
     $mysqli=new mysqli("localhost", "root", "123456","student");
     if($mysqli->connect_error){
       die("数据库连接失败:".$mysqli->connect_error);
     }
     $mysqli->autocommit(false);
     $sql="update m_student set stuName='潘玮柏' where id=3";
     $sql2="update m_student set stuName='苏有朋' where id=4";
     $result1=$mysqli->query($sql);
     $result2=$mysqli->query($sql2);
     if(!$result1||!$result2){
        echo $mysqli->error;
        $mysqli->rollback();
     }else{
        $mysqli->commit();
        echo "操作成功";
     }
     $mysqli->close();
?>


php+mysqli实现批量执行插入、更新及删除数据的方法 主要介绍了php+mysqli实现批量执行插入、更新及删除数据的方法,主要涉及multi_query()函数的用法,需要的朋友可以参考下 立即下载

相关推荐

Source Insight 4.0舒适黑主题 仿心情看的舒服就行

Source Insight 4.0主题 仿心情看的舒服就行 source insight自带的主题怎么看怎么别扭,于是在试用全网各种主题配色后,在其中一个基础上自定义了c/c++的语法配色 截全图有点糊 函数定义 全局变量 局部变量 枚举变量引用 全局变量引用及结构体成员 宏定义引用 ----------------------后面会再把主题文件贴上来-------------- ...

weixin_43443402的博客 1303

Mysql批量插入事务插入性能对比

Mysql批量插入事务插入性能对比。对于一些数据量较大的系统,数据库面临的问题除了查询效率低下,还有就是数据入库时间长。特别像报表系统,可能每天花费在数据导入上的时间就会长达几个小时之久。因此,优化数据库插入性能是很有意义的。网络上的牛人很多,总会有一些手段可以提高insert效率,大家跟我一起分享一下吧:1. 一条SQL语句插入多条数据。我们常用的插入语句大都是一条一个insert,如:INSE...

huningjun的专栏 1375

别再手动算了!用Excel函数一键搞定AQI和首要污染物分析(附完整公式模板)

本文介绍如何利用Excel函数自动化计算AQI和首要污染物分析,大幅提升数据处理效率。通过构建标准化输入模板、智能计算IAQI、自动判定AQI与首要污染物,并生成可视化仪表盘,帮助环保工作者快速完成每日监测报告。

weixin_30443075的博客 345

对MySQL数据库进行批量处理操作

由于数据库本身就可以批量进行选择(例如 select * from customers), 删除(例如delete * from customers)。所以本章主要讲解数据库如何实现数据的批量插入

weixin_53387031的博客 2706

uniapp实战:mui-player插件如何完美适配m3u8/flv直播流(附完整代码)

本文详细介绍了如何在Uniapp中使用mui-player插件完美适配m3u8和flv直播流,提供从基础配置到高级优化的全流程解决方案。通过动态加载策略、响应式布局和内存管理,实现跨平台稳定播放,适用于企业级直播应用开发。

weixin_29001655的博客 236

手把手教你用三菱PLC控制JET伺服原点:从硬件接线到GXWORKS3程序调试

本文详细介绍了如何使用三菱PLC控制JET伺服系统实现原点回归功能,涵盖硬件接线、参数配置到GX Works3程序调试的全流程。通过实战指南,帮助工程师快速掌握伺服控制技术,提升工业自动化项目的实施效率。

weixin_30642561的博客 535

MySQL批量插入数据详解

批量插入数据是MySQL中提高插入效率、减少开销的重要手段。本文详细介绍了几种常见的批量插入方法,包括使用单条INSERT语句、命令、存储过程以及使用事务保证原子性等。同时,提供了一些优化和最佳实践建议。

良月柒 8782

你以为你懂 Java 反射?看了这篇源码分析,我发现我以前都错了

摘要:本文讲述了一次生产环境Metaspace内存溢出的故障排查经历。事故源于一个通用数据导出功能中频繁使用反射调用method.invoke(),触发了JVM的"膨胀机制":当同一Method对象调用超过15次时,JVM会动态生成GeneratedMethodAccessor类,导致Metaspace被撑爆。文章分析了问题根源在于循环中反复调用getMethods()创建新Method对象,并提出了三种解决方案:缓存Method对象、改用MapStruct/MethodHandle工具

BUG猿的博客 770

MySQL优化:批量插入大数据4种实用、讲究方案的测试

记录MySQL插入大数据一些方案的测试心得,即for循环插入、拼接SQL语句、批量插入saveBatch()、循环插入 + 开启批处理模式,该4种情况的测试内容,最终以平均耗时来预测各方案的性能问题,可得知开启批处理模式的方案效率是最高的,但是必须注意一个点:一定要开启批处理模式,在URL地址加入rewriteBatchedStatements = true 参数,否则即使是在批量插入情况下,也是无法发挥该方法优点。

彼岸尚有荣光在,应不断记录总结!!! 1万+

C++实现复制粘贴文本功能

要实现这个功能,我们需要使用操作系统提供的函数来操作剪贴板。在Windows操作系统中,我们可以使用Windows API函数来访问剪贴板。总结起来,使用C++实现复制和粘贴文本功能涉及使用操作系统提供的API函数来操作剪贴板。在本篇文章中,我将向您展示如何使用C++编程语言实现复制和粘贴文本的功能。我们将使用操作系统提供的API来进行剪贴板操作,并编写相应的代码来完成这个任务。如果您使用的是Linux操作系统,您需要使用适当的库和函数来访问剪贴板。函数中,我们首先将一个字符串复制到剪贴板中,然后使用。

PixelDyno的博客 1233

华为OD机试真题 新系统【网络数据包收发处理】

华为OD机试 新系统真题【网络数据包收发处理】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【网络数据包收发处理】多语言题解。

qq_45776114的博客 445

mysqli扩展是mysql扩展的增强版,PHP使用MySqli扩展库去操作MySql数据库

PHP使用MySqli扩展库去操作MySql数据库MySqli数据库是MySql数据库的增强版Mysqli和MySql的区别1.MySqli的效率和安全性更高。2.MySqli支持面向对象编程,还支持面向过程编程。修改PHP配置文件php.ini中的 ;extension=php_mysqli.dll去掉前面的分号即可 extension=php_mysqli.dll简单案例1.使用...

weixin_42683394的博客 293

基于STM32、HAL库的 CH9102X USB转UART收发器 驱动程序设计

/ 或 UART_HWCONTROL_RTS_CTS。// 其他函数实现类似,使用HAL_UART_Transmit_IT, HAL_UART_Receive_IT等。UART_TXD <---> USARTx_RX (STM32接收)UART_RXD <---> USARTx_TX (STM32发送)* @param huart: UART句柄指针。* @param huart: UART句柄指针。* @param huart: UART句柄指针。* @param huart: UART句柄指针。

corlin6688的博客 506

陈力:传智播客古代 珍宝币 泡泡龙游戏开发第39讲:PHP数据库编程MySQLi扩展库

mysqli扩展允许我们访问MySQL 数据库,并对MySql数据库进行curd操作。mysqli扩展可以进行数据查询、批量执行sql语句、事务回滚、预处理 MySQLi_STMT等操作。请贵阳网站建设的朋友继续往下读。

zhenbaobe的博客 713

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

边记边学PHP-(十八)PHP使用MySQLi扩展库操作数据库2

从前天开始,我的电脑不知道怎么了,写程序的时候无缘无故就死机。还不是彻底死,鼠标还能动,就是点击不好使,也打不开任务管理器。昨晚检查一下硬盘,有六个坏道,也不知道是不是这个原因。但是我在玩的时候,只要不打开编译器写程序,啥事也没有。玩游戏也不回出现那种情况。把我搞得好烦。 四、Mysqli扩展库增强 MySQLi扩展库在基础操作上看着没什么不同,只是从面面向过程转换成了面向对象。但是既然是my

Fleur爱编程 931

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

php和数据库的接口,php数据库接口

三套方案 mysql mysqli pdo1、mysql扩展库 效率不怎么高的数据库2、mysqli扩展库3、pdo 可以操作任何一种数据库mysql扩展库和mysqli的扩展库,扩展库就是操作数据库的一个集合mysql数据库是用于存放数据的可以查看php可以使用的扩展库 phpinfo();创建新表CREATE table user(id int primary key auto_increm...

weixin_42561249的博客 328

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

mysql连接字段aado_数据库访问 mysql连接库--查询

php操作数据库的三种方法1.mysql扩展库 (最早的);2.mysqli扩展库;3.pdophp 数据类型1.基本数据类型;2.符合数据类型;3.特殊数据类型 null 和资源数据类型mysql扩展库和mysql数据库的区别1.mysql扩展库包含操作mysql数据库的函数(CRUD)2.数据库三层结构:sql指令(来自客户端或者服务器)-->dbms(二次编译成二进制命令)--&g...

weixin_39530960的博客 217

php数据库(mysql)编程基础

u Php数据库编程 说php有三种方式操作mysql数据库 ① Mysql扩展库 ② Mysqli扩展库 ③ Pdo Mysql扩展库和mysql数据库的区别(库就是一些函数) 1、Mysql数据库用于存放数据的 DBMS(数据库管理系统) 2、mysql数据库的三层结构示意图 3、Mysql扩展库是一堆函数,是用于对mysql数据库的操作。 实例连接数据库及对数

y136l的专栏 573

【PHP&&mysqli】

msyqli和mysql只有一个字母的差别,真正的含义是msyql的增强版扩展。 MySQL可以处理满足程序员对MySQL数据库操作的各种需要了,为什么还需要mysqli呢?因为mysqli支持面性对象编程,PHP的开发者为了适应当前的发展,不得不对PHP进行升级,并使其慢慢向面向对象看齐。 虽然mysqli支持面向对象,但是mysqli扩展库考虑到PHP老程序员,同时也提供了面向过...

136

mysql2 及path配置

u 使用php 的mysqli扩展库去操作mysql数据库 简单介绍: mysqli (mysql improve mysql扩展库的增强版) mysql 扩展库 和  mysqli 扩展库的比较 1. mysqli 的稳定性和安全性,效率有所提高 2. mysqi 支持面向对象编程 ,同时 mysqli 扩展库考虑到php老程序员,提供面向过程的编程风格. mysql

luyuncsd123的专栏 542

php 批量事务处理,mysqli扩充库的批量操作和事务处理

mysqli扩展库的批量操作和事务处理php和jdbc一样也可以批量处理数据和进行事务处理,php要实现这2种操作还是很简单的,下面就来分享下我的学习经验1.批量查询数据mysqli处理批量查询可以使用multi_query来查询数据,但是sql的写法有限制写法只能是 sql语句1;sql语句2;sql语句3 ,查询结果也是mysql资源类型,如果要得到查询结果可以使用store_resu...

weixin_28224217的博客 227

Mysqli的批量CRUD数据

学会了使用了mysqli扩展库之后,总体感觉比面向过程的方法更加合理化,面向对象是大势所趋,所以绝不能仅仅只用那一套老的mysql库了,也不利于php对mysql的操作,因为我们在实际的开发中,很多还是面向对象开发的,在这里,就说一下mysqli之所以成为扩展库自然有其理由,就批量操作的特性就大大的提高了代码的执行效率。 还是和以往一样,我喜欢把sql语句分为dql语句和dml语句,主要

MyCodeDream的专栏 843

边记边学PHP-(十七)PHP使用MySQLi扩展库操作数据库1

上一篇写了使用MySQL扩展库操作数据库,但是MySQL扩展库是完全面向过程的库,与现在逐渐走上舞台的面向对象思想有点差别。那么MySQLi扩展库就很好的解决了这个问题。 一、MySQLi扩展库是什么 mysqli(mysql improve)是mysql扩展库的增强版。 mysql扩展库 和mysqli扩展库的比较: 1.mysqli的稳定性、安全性和效率有所提高 2.

Fleur爱编程 727

mysqli扩展库增强-预处理mysqli_stmt 批量查询显示结果

<?php //mysqli扩展库增强-预处理mysqli_stmt 批量查询显示结果 //1、创建mysql对象 $mysqli=new mysqli("127.0.0.1","root","password","testdb"); //验证是否连接成功 if($mysqli->connect_error){ die("连接失败".$mysqli

CHINAHEAO的专栏 710

MySqli扩展库的对象对象属性特点以及与mysql库面向过程的比较

在学习完mysql库来操作mysql的方式,这是一种面向过程的方式,但是,面向对象是大势所趋,mysqli扩展库也就有必须学习的必要了,mysqli作为一个类库,在我们使用的时候都是以面向对象的方式进行操作,所以,这种方案是比较好的,为此,我特意做了它与mysqli扩展库的对应比较: 下面是mysql库的连接,查询语句,返回结果,释放资源的过程: <?php //1:连接数据库

MyCodeDream的专栏 1432

在php中mysqli的用法,解析在PHP中使用mysqli扩展库对mysql的操作

1、在PHP中 使用mysqli扩展库对mysql 的dql操作复制代码 代码如下:header("Content-type: text/html;charset=utf-8");//mysqli操作mysql数据库(面向对象方式)//1、创建MySQLi对象$mysqli =new MySQLi("localhost","root","root","test");if($mysqli->c...

weixin_39764379的博客 277
上一篇: PHP使用mysqli扩展库实现增删改查(面向对象版)
下一篇: mysqli扩展库的预处理机制
青蛙小王子
博客等级 码龄16年 239粉丝 311原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值