批量执行sql语句
Posted seabiscuit0922
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批量执行sql语句相关的知识,希望对你有一定的参考价值。
- 基本使用
$sqls="sql语句1;sql语句2;sql语句n";
或 $sqls="insert into xx;"; $sqls.="insert into xx;";
$res=mysqli::multi_query($sqls);
如果$sqls 是dml 语句,则$res 返回布尔值;
如果$sqls 是dql 语句,则$res 返回多个结果集,需要使用mysqli::store_result()
和 mysqli::more_results() mysqli::next_result() 配合取出各个结果集
- 批量执行dml语句(insert、update、delete语句可以混合拼接)
1 <?php 2 //连接数据库 3 $mysqli=new MySQLi("localhost","root","root","test"); 4 //判断是否连接成功 5 if($mysqli->connect_error){ 6 die("连接失败".$mysqli->connect_error); 7 } 8 //拼接sql语句,注意-->双引号里的分号不可少!!! 9 $sqls="insert into user1 (name,password,age,birthday) values (\'wpp\',md5(\'wpp\'),25,\'1991-05-05\');"; 10 $sqls.="insert into user1 (name,password,age,birthday) values (\'zs\',md5(\'zs\'),26,\'1990-01-01\');"; 11 $sqls.="insert into user1 (name,password,age,birthday) values (\'ls\',md5(\'ls\'),26,\'1990-02-01\');"; 12 //批量执行dml语句 13 $res=$mysqli->multi_query($sqls); 14 //判断执行结果 15 if(!$res){ 16 echo "操作失败"; 17 }else{ 18 echo "操作成功"; 19 } 20 //关闭连接 21 $mysqli->close(); 22 ?>
- 查询user1 表的结构和表的内容并显示
1 <?php 2 //连接数据库 3 $mysqli=new MySQLi("localhost","root","root","test"); 4 //判断是否连接成功 5 if($mysqli->connect_error){ 6 die("连接失败".$mysqli->connect_error); 7 } 8 //拼接sql语句,注意-->双引号里的分号不可少!!! 9 $sqls="desc user1;"; 10 $sqls.="select * from user1"; 11 //批量执行dql语句 12 $res=$mysqli->multi_query($sqls) or die("操作失败".$mysqli->error); 13 //处理执行结果 14 do{ 15 echo"<br/>-----结果如下-----<br/>"; 16 //取出第一个结果集 17 $result=$mysqli->store_result(); 18 //显示结果 19 while($row=$result->fetch_row()){ 20 foreach($row as $key=>$val){ 21 echo "--".$val; 22 } 23 echo "<br/>"; 24 } 25 //及时释放结果集 26 $result->free(); 27 }while($mysqli->more_results()&&$mysqli->next_result()); 28 //关闭连接 29 $mysqli->close(); 30 ?>
结果如下:
- 查询user1 表的结构和表的内容并用表格显示在网页
1 <?php 2 //批量执行sql语句(dql),以表格形式显示在网页 3 //连接数据库 4 $mysqli=new MySQLi("localhost","root","root","test"); 5 //判断是否连接成功 6 if($mysqli->connect_error){ 7 die("连接失败".$mysqli->connect_error); 8 } 9 //拼接sql语句,注意-->双引号里的分号不可少!!! 10 $sqls="desc user1;"; 11 $sqls.="select * from user1"; 12 //批量执行dql语句 13 $res=$mysqli->multi_query($sqls) or die("操作失败".$mysqli->error); 14 //处理执行结果 15 do{ 16 echo"<br/>-----结果如下-----<br/>"; 17 //取出第一个结果集 18 $result=$mysqli->store_result(); 19 echo "<table border=1 cellspacing=0 cellpadding=3px><tr>"; 20 //显示表头和表的第一行内容 21 $fieldName=$result->fetch_assoc(); 22 foreach($fieldName as $key=>$val){ 23 echo "<th>$key</th>"; 24 } 25 echo "</tr><tr>"; 26 foreach($fieldName as $key=>$val){ 27 echo "<td>$val</td>"; 28 } 29 echo "</tr>"; 30 //显示表的第二行以后的内容 31 while($row=$result->fetch_row()){ 32 echo "<tr>"; 33 foreach($row as $key=>$val){ 34 echo "<td>$val</td>"; 35 } 36 echo "</tr>"; 37 } 38 echo "</table>"; 39 //及时释放结果集 40 $result->free(); 41 }while($mysqli->more_results()&&$mysqli->next_result()); 42 //关闭连接 43 $mysqli->close(); 44 ?>
结果如下:
以上是关于批量执行sql语句的主要内容,如果未能解决你的问题,请参考以下文章