本篇內(nèi)容主要講解“PHP數(shù)據(jù)庫(kù)怎么一次執(zhí)行多條SQL命令”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“PHP數(shù)據(jù)庫(kù)怎么一次執(zhí)行多條SQL命令”吧!
企業(yè)建站必須是能夠以充分展現(xiàn)企業(yè)形象為主要目的,是企業(yè)文化與產(chǎn)品對(duì)外擴(kuò)展宣傳的重要窗口,一個(gè)合格的網(wǎng)站不僅僅能為公司帶來巨大的互聯(lián)網(wǎng)上的收集和信息發(fā)布平臺(tái),創(chuàng)新互聯(lián)面向各種領(lǐng)域:成都VR全景等成都網(wǎng)站設(shè)計(jì)、成都全網(wǎng)營(yíng)銷解決方案、網(wǎng)站設(shè)計(jì)等建站排名服務(wù)。
在上篇文章中我們給大家介紹了獲取SQL的查詢結(jié)果的常用函數(shù),通過不同的函數(shù)來查詢數(shù)據(jù)返回的形式不同,運(yùn)行MySQLi_query() 函數(shù)每次只能執(zhí)行一條SQL命令,在PHP中有一個(gè)函數(shù)可以讓代碼一次執(zhí)行多條SQL命令,那就是mysqli_multi_query() 函數(shù),接下來讓我們一起來了解一下mysqli_multi_query() 函數(shù)吧。
mysqli_multi_query()
函數(shù)
在我們前面介紹的 mysqli_query()
函數(shù)的時(shí)候,運(yùn)行該函數(shù)每次只能執(zhí)行一條SQL命令,但是想要執(zhí)行多條SQL命令的時(shí)候,mysqli_query() 函數(shù)就不能滿足我們了,這時(shí)候我們就需要通過mysqli_multi_query()
函數(shù)來實(shí)現(xiàn)一次執(zhí)行多條 SQL 命令。
mysqli_multi_query()
函數(shù)的語(yǔ)法格式如下:
mysqli::multi_query(string $query)
這是面向?qū)ο蟮膶懛ǎ旅媸敲嫦蜻^程的寫法:
mysqli_multi_query(mysqli $link, string $query)
其中需要注意的是:
$query
表示為要查詢的 SQL 語(yǔ)句
$link
表示為使用 mysqli_connect() 函數(shù)返回的鏈接標(biāo)識(shí)
$query
表示參數(shù),其中可以包含多條 SQL 命令,每條 SQL 命令之間使用分號(hào);
分隔。如果第一條 SQL 命令在執(zhí)行時(shí)沒有出錯(cuò),那么這個(gè)函數(shù)就會(huì)返回 TRUE,否則將返回 FALSE。
接下來我們通過示例來看一下mysqli_multi_query() 函數(shù)的使用,來執(zhí)行多條SQL命令,示例如下:
connect_errno){ die('數(shù)據(jù)庫(kù)連接失敗:'.$mysql->connect_errno); }else{ $sql = 'select id,name from user;'; // SQL 語(yǔ)句 $sql .= 'select sex,age from user'; // SQL 語(yǔ)句 if($mysql -> multi_query($sql)){ do{ if ($result = $mysql -> store_result()) { while ($row = $result->fetch_row()) { print_r($row); } $result->free(); } if ($mysql -> more_results()) { echo '
'; }else{ break; } } while ($mysql -> next_result()); } $mysql -> close(); } ?>
輸出結(jié)果:
上述結(jié)果通過mysqli_multi_query() 函數(shù)完成了執(zhí)行多條SQL命令,
其中我們需要注意的是:
因?yàn)?mysqli_multi_query()
函數(shù)能夠連接執(zhí)行一個(gè)或多個(gè)查詢,而每條 SQL 命令都可能返回一個(gè)結(jié)果,在必要時(shí)需要獲取每一個(gè)結(jié)果集。所以對(duì)該函數(shù)返回結(jié)果的處理也有了一些變化,第一條查詢命令的結(jié)果要用 mysqli_use_result()
或 mysqli_store_result()
函數(shù)來讀取。
也可以使用 mysqli_store_result()
函數(shù)將全部結(jié)果立刻取回到客戶端,而且這么做的效率更高。另外,可以使用mysqli_more_results()
函數(shù)檢查是否還有其他結(jié)果集。
如果想對(duì)下一個(gè)結(jié)果集進(jìn)行處理,可以使用 mysqli_next_result()
函數(shù)獲取下一個(gè)結(jié)果集,有下一個(gè)結(jié)果集時(shí)該函數(shù)返回 TRUE,沒有時(shí)返回 FALSE,在有下一個(gè)結(jié)果集的情況下,也需要使用 mysqli_use_result()
或 mysqli_store_result()
函數(shù)來讀取結(jié)果集的內(nèi)容。
上述使用的是面向?qū)ο蟮姆椒?,接下來看一下面向過程的方法,示例如下:
'; }else{ break; } } while (mysqli_next_result($link)); mysqli_close($link); }else{ echo '數(shù)據(jù)庫(kù)連接失??!'; } ?>
輸出結(jié)果與上述結(jié)果相同,由此我們便通過mysqli_multi_query() 函數(shù)一次性完成多條SQL命令。
到此,相信大家對(duì)“PHP數(shù)據(jù)庫(kù)怎么一次執(zhí)行多條SQL命令”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!