一次執行多條SQL指令使用mysqli物件中的multi_query()方法。
具體做法:
把多個SQL指令寫在同一個字串裡作為參數傳遞給multi_query()方法,多條SQL之間使用分號(;)分隔。如果第一條指令在執行時沒有出錯,這個方法就會回傳TRUE,否則回傳FALSE 。
由於multi_query()方法能夠連接執行一個或多個查詢,而每個SQL指令都可能回傳一個結果,必要時需要取得每一個結果集。所以這個方法回傳結果的處理也有一些變化,第一個查詢指令的結果要用mysqli物件中的use_result()或store_result()方法來讀取,當然,使用store_result()方法將全部結果立刻回到客戶端,這種做法效率更高。另外,可以用mysqli物件中的more_results()方法檢查是否還有其他的結果集。
若想要對下一個結果集進行處理,應該呼叫mysqli物件中的next_results()方法,取得下一個結果集。這個方法回傳TRUE或FALSE。
若有下一個結果集,也需要使用use_result()或store_result()方法來讀取。
執行多個SQL指令程式碼如下:
$mysqli=new mysqli("localhost","mysql_user","mysql_pwd","my_db_name"); I/ . mysqli->mysql_connect_errno()){
printf ("連線失敗:%s
",mysql_connect_error());
3$ 2;";
$query.= "SELECT CURERENT_USER();" //上使用中使用中的使用者名稱「 cute multi query */
if($mysqli->multi_query($query )){
do{
if($result=$mysqli->store_result()){
while($row=$result->fetch_row() ){
foreach($row as $data){
}
}
}
if($my ----------------------------
";
}
}while($mysqli->next_result());
) }
/* close connection */
$mysqli->close();
?>
附註:
並從中遍歷數據。如果在指令的處理過程中發生了錯誤,multi_query()和next_result()方法就會出現問題。
multi_query()方法的回傳回值,以及mysqli的屬性errno、error、info等只與第一個SQL指令有關,無法判斷第二條及以後的指令是否在執行時發生了錯誤。所以執行multi_query()方法的回傳值是TRUE時,並不表示後續指令在執行時沒有出錯。
以上就介紹了mysqli物件中的multi_query()方法,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。