首页 > 代码库 > 批量执行sql语句

批量执行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语句