批量执行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语句的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL批量插入语句怎么写

java jdbc 执行sql语句批量操作问题

Mybaits的批量操作包括批量删除 批量增加和批量更新

php函数mysql_query批量执行多句sql语句

php函数mysql_query批量执行多句sql语句

批量执行sql语句