首頁  >  文章  >  後端開發  >  mysqli物件中的multi_query()方法

mysqli物件中的multi_query()方法

WBOY
WBOY原創
2016-08-08 09:26:151193瀏覽

一次執行多條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教程有興趣的朋友有所幫助。


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn