在MySQLi 中使用單個準備好的語句插入多行
問題:
插入多個使用準備好的語句將行存入資料庫,避免了每一行單獨查詢的需要。
解決方案:
雖然準備好的語句通常處理單行操作,但這是可能的使用特殊的查詢語法和方法插入多行。
方法:
程式碼範例:
<code class="php">$rows = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; $rowCount = count($rows); $values = "(&" . implode('),(', array_fill(0, $rowCount, '?,?,?')) . "&)"; $stmt = $conn->prepare("INSERT INTO test (col1, col2, col3) VALUES $values"); $stmt->bind_param(str_repeat('i', $rowCount * 3), ...array_merge(...$rows)); $stmt->execute();</code>
替代方法:
使用單行的準備好的語句也是可以接受的佔位符並在每行循環中執行它,這更簡單,但效率可能較低。
以上是如何在 MySQLi 中使用單一準備語句插入多行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!