使用MySQLi 準備好的語句插入多行
問題:
您想要
問題:您想要
問題:<code class="php">$rows = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; // Sample indexed array of indexed arrays $rowCount = count($rows); $values = "(" . implode('),(', array_fill(0, $rowCount, '?,?,?')) . ")"; $conn = new mysqli("localhost", "root", "", "myDB"); $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>
解決方案:
雖然準備好的語句通常用於單行操作,有一種複雜的技術允許在一個語句中插入多行。在索引數組的範例索引數組([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) 上進行測試,以下程式碼示範了該過程:<code class="php">foreach ($rows as $row) { $stmt = $conn->prepare("INSERT INTO test (col1, col2, col3) VALUES (?,?,?)"); $stmt->bind_param('iii', $row[0], $row[1], $row[2]); $stmt->execute(); }</code>
替代方法:
以上是如何使用 MySQLi 準備語句有效率地插入多行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!