Mysqli的批量CRUD数据

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

还是和以往一样,我喜欢把sql语句分为dql语句和dml语句,主要是根据返回结果来分的,前者是结果集(需要释放),后者是布尔值。

下面是批量操作dml语句的代码:

<?php
	/*require_once "mysqltool.class.php";
	$SqlHelper=new SqlTool();
	$sql="insert into words(enword,chword) values(
		'classroom','教室')";
	$res=$SqlHelper->execute_dml($sql);
	//$res->free();*/
	//这是mysqli批量增删改数据
	$mysqli= new MySqli("localhost","root","toor","education");
	if($mysqli->connect_error){
		die("连接失败:".$mysqli->connect_error);
	}
	echo "连接成功<br/>";
	/*//批量添加数据
	$sql_1.="insert into words (enword,chword) values(
		'classroom444','教室');";
	$sql_1.="insert into words (enword,chword) values(
		 'classroom222','教室');";
	$sql_1.="insert into words (enword,chword) values(
		'classroom333','教室');";
	$b=$mysqli->multi_query($sql_1);
	*/
	//批量删除数据
	/*$sql_2.="delete from words where id=14;";
	$sql_2.="delete from words where id=15;";
	$sql_2.="delete from words where id=16;";
	$sql_2.="delete from words where id=17;";
	$sql_2.="delete from words where id=18;";
	$sql_2.="delete from words where id=19;";
	$sql_2.="delete from words where id=20;";
	$sql_2.="delete from words where id=22;";
	*/
	//也可以批量修改。。。。
	/*但是不建议和select语句共用*/

	$b=$mysqli->multi_query($sql_2);
	if(!$b){
		echo "添加失败";
	}else{
		echo "添加成功".$mysqli->connect_error;
	}
	$mysqli->close();
?>

下面是操作dql语句的代码:相对于dml就有一点复杂了:

<?php
$mysqli= new MySqli("localhost","root","toor","education");
	if($mysqli->connect_error){
		die("连接失败:".$mysqli->connect_error);
	}
	echo "连接成功<br/>";
<span style="white-space:pre">	</span>$sql_3.="select * from words;";
	$sql_3.="select * from words_test1;";
<span style="white-space:pre">	</span>if($res=$mysqli->multi_query($sql_3)){
	<span style="white-space:pre">	</span>do{
			$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 "***********************************************";
		}while($mysqli->next_result());
	}
	$mysqli->close();
?>

主要就是后者返回的是一个结果集的集合,需要一层一层的把它剥开看能够看到东西。

本文仅限参考和csdn转载,尊重原创,查看我的MyCodeDream个人博客点击打开链接

时间: 2024-08-26 11:01:06

Mysqli的批量CRUD数据的相关文章

php+mysqli实现批量执行插入、更新及删除数据的方法

本文实例讲述了php+mysqli实现批量执行插入.更新及删除数据的方法.分享给大家供大家参考.具体如下: mysqli批量执行插入/更新/删除数据,函数为 multi_query(). 下面的代码只是批量插入数据,事实上,插入数据.更新数据.删除数据等可以混合一起执行.查询时使用该函数,读取数据有点不太一样,具体参考如下代码: <?php //1.创建数据库连接对象 $mysqli = new MySQLi("localhost","root","

向mysql中批量插入数据的性能分析

MYSQL批量插入数据库实现语句性能分析 假定我们的表结构如下 代码如下   CREATE TABLE example (example_id INT NOT NULL,name VARCHAR( 50 ) NOT NULL,value VARCHAR( 50 ) NOT NULL,other_value VARCHAR( 50 ) NOT NULL) 通常情况下单条插入的sql语句我们会这么写: 代码如下   INSERT INTO example(example_id, name, valu

用python操作mysql数据库(之批量插入数据)

#!/usr/bin/env python # -*- coding: utf-8 -*- import MySQLdb #建立连接 conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='1qaz#EDC',db='test_db') cur = conn.cursor() #对数据进行操作 li = [('tanzhenx','shaoguan'),('huangmengdie','shaoguan')] #定义一个列表,列表中

Dynamics 2015 数据管理 之 如何批量导入数据到 正式区(一)

单一个项目的数据导入可以在具体功能 中导入,大体位置如下. 如果项目新上线的话,要批量导入数据的话,就要到如下的功能中实现了. 进入方式: 在 设置 ---- 数据管理 下载 下载后,用EXCEL打开, 给业务人员批量输入数据. 编辑好以后,上传吧,点 导入. 下一步即可以,导入以后,可以返回看看数据导入的情况,格式有没有错误等.

SQL Server 批量插入数据的两种方法

在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题.下面介绍SQL Server支持的两种批量数据插入方法:Bulk和表值参数(Table-Valued Parameters). 运行下面的脚本,建立测试数据库和表值参数. [c-sharp] view plaincopy --Create DataBase create database BulkTestDB; go use BulkTes

Sql语句批量更新数据(多表关联)

最近在项目中遇到一个问题,原来设计的功能是不需要一个特定的字段值depid的,但是新的功能需要根据depid来展现,于是出现了这样一个问题,新增加的数据都有正确的depid,而原来的大量的数据就没有depid或者说depid不是想要的,面临要批量更新原来数据depid的问题. 更新涉及到三个表base_cooperativeGroup,base_groupuser,base_user. 列出表结构: 1.base_cooperativeGroup 2.base_groupuser 3.base_

使用SqlBulkCopy类来批量复制数据

DataTable dt = new DataTable(); dt.Columns.Add("id", typeof(string)); for (int i = 0; i < 100; i++) { DataRow dr = dt.NewRow(); dr["id"] = "sadf" + i; dt.Rows.Add(dr); } using (SqlConnection conn = new SqlConnection(@"

ajax批量删除数据

做网页经常要选择批量删除数据,基本都是异步请求批量删除,用到更多的是ajax批量删除.思路是前端ajax请求,传入ids(要删除对象id的字符串数组)到后台. 后台再遍历id,调用删除接口,删除数据.返回json给前台. 代码例子如下: 1 function deleteSaleChance() { 2 var selectedRows = $("#dg").datagrid("getSelections"); 3 if(selectedRows.length==0

Yii2如何批量添加数据

批量添加这个操作,在实际开发中经常用得到,今天小编抽空给大家整理些有关yii2批量添加的问题,感兴趣的朋友一起看看吧. 在上篇文章给大家介绍了关于浅析Yii2 gridview实现批量删除教程,当然,着重点在于怎么去操作gridview了,今儿我们来好好谈谈yii2如何批量添加数据? 有同学嚷嚷了,这还不简单,我foreach一循环,每个循环里面直接把数据插入到数据库,简单粗暴完事!我擦嘞,哥,你要是跟我在一个公司,我觉得第二天见到你的概率可就不大了! 话不多说,说多了你在骂我,我们步入正题,先