在 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中文网其他相关文章!