本节演示php中使用msyqli批量执行sql语句的例子。
1,mysqli查询,批量执行updatedelete等语句
<?php //mysqli批量执行sql语句 //批量执行dql //使用mysqli::multi_query() 一次性添加3个用户 $mysqli =new MySQLi("localhost","root","root","test"); if($mysqli->connect_error){ die ("连接失败".$mysqli->connect_error); } //注意分号 $sqls="insert into user1 (name,password,email,age) values('AAA',md5('AAA'),'AAA@jb200.com',25);"; $sqls.="insert into user1 (name,password,email,age) values('BBB',md5('BBB'),'BBB@jb200.com',25);"; $sqls.="insert into user1 (name,password,email,age) values('CCC',md5('CCC'),'CCC@jb200.com',25);"; //批量执行dml 可以混合使用delete insert update //$sqls.="update user1 set age=15 where id=1;"; //$sqls.="delete from user1 where id=10"; $res=$mysqli->multi_query($sqls); if(!$res){ echo "操作失败".$mysqli->error; }else{ echo "OK"; } ?>
2、批量查询
<?php //使用mysqli的mysqli::multi_query() 一次性查询表的机构和表中的内容 //edit:www.jb200.com //1、创建mysqli对象 $mysqli=new MySQLi("localhost","root","root","test"); if($mysqli->connect_error){ die("连接失败".$mysqli->connect_error); } //2、批量查询语句 $sqls="select *from user1;"; $sqls.="desc user1"; //3、处理结果 //如果成功,至少有一个结果集 if($res=$mysqli->multi_query($sqls)){ do{ //取出第一个结果集 $res=$mysqli->store_result(); while($row=$res->fetch_row()){ foreach($row as $val){ echo '--'.$val; } echo '<br/>'; } //及时释放内存 $res->free(); //判断是否还有结果集 if($mysqli->more_results()){ echo "********新的结果集***************<br/>"; }else{ break; } }while($mysqli->next_result()); } //4、关闭资源 $mysqli->close(); ?>