0

我试图弄清楚如何正确地实现沿格式的多行插入

insert to tbl values (?,?,?), (?,?,?), (?,?,?);

mysqli_bind_param文档非常清楚如何为单行完成此操作。

从文档中,他们的示例如下所示:

$stmt = $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
$stmt->bind_param('sssd', $code, $language, $official, $percent);

但是,我有一个多维数组,其中每个内部元素表示要插入的值集或行。

4

1 回答 1

2

好吧,你有2个选择

  1. 使用非常准备好的语句方法使用一次准备好的查询进行多次插入。包裹在交易中,他们必须非常快
  2. 创建对 bind_param 的动态调用,这将是一种痛苦,一种意想不到的痛苦。由于某种原因,mysqli 使动态绑定过于复杂。

您需要将数组合并为一个数组,然后为引用创建第二个数组,然后调用call_user_func_array()后一种方法。不知道这是否值得一团糟。

于 2013-05-20T20:55:16.147 回答