码迷,mamicode.com
首页 > 数据库 > 详细

Mysqli的批量CRUD数据

时间:2015-03-11 19:51:32      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:crud   mysqli   multi   more_results   nest_result   

学会了使用了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个人博客点击打开链接



Mysqli的批量CRUD数据

标签:crud   mysqli   multi   more_results   nest_result   

原文地址:http://blog.csdn.net/mycodedream/article/details/44200889

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!