mysqli 支援單次調用執行多條 SQL,語句間必須用分號分隔。
<?php
$mysqli = new mysqli("localhost", "root", "", "new");
$mysqli->query("SET NAMES 'utf8'");
$sql = "SELECT id, name FROM `user`;";
$sql .= "SELECT id, mail FROM `user`";
if ($mysqli->multi_query($sql)) {
do {
if ($rs = $mysqli->store_result()) {
while ($row = $rs->fetch_row()) {
var_dump($row);
echo "<br>";
}
$rs->close();
}
if ($mysqli->more_results()) {
echo "<hr>";
}
} while ($mysqli->next_result());
}
$mysqli->close();
?>
multi_query($sql):發送多條 SQL,返回 boolstore_result():獲取當前結果集(緩衝模式)fetch_row():逐行讀取結果more_results():判斷是否還有後續結果集next_result():移動到下一結果集,返回 boolnext_result() → 只能讀第一個結果集store_result() 佔用大量內存 → 考慮 use_result() 流式讀取配合預處理使用可進一步提升批量操作性能與安全性。