批量執行sql語句

  • 基本使用

$sqls="sql語句1;sql語句2;sql語句n";php

或 $sqls="insert into xx;";  $sqls.="insert into xx;";mysql

$res=mysqli::multi_query($sqls);sql

若是$sqls 是dml 語句,則$res 返回布爾值;數據庫

若是$sqls 是dql 語句,則$res 返回多個結果集,須要使用mysqli::store_result()fetch

和 mysqli::more_results()    mysqli::next_result() 配合取出各個結果集spa

  • 批量執行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 ?>

結果以下:3d

  •  查詢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 ?>

結果以下:code

相關文章
相關標籤/搜索