使用mysqli和绑定参数的多行插入语句

时间:2013-05-20 20:41:41

标签: php mysqli

我正在试图弄清楚如何正确地实现

格式的多行插入
insert to tbl values (?,?,?), (?,?,?), (?,?,?);

mysqli_bind_param doc非常明确如何为单行完成此操作。

从他们的示例中看来:

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

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

1 个答案:

答案 0 :(得分:2)

嗯,你有两个选择

  1. 使用准备好的语句方法,使用一次准备好的查询进行多次插入。包含在交易中他们必须非常快速
  2. 创建一个对bind_param的动态调用,这将是一个痛苦,一个意​​想不到的痛苦。出于某种原因,mysqli使得动态绑定过于复杂。
  3. 您需要将数组合并为单个数组,然后为引用创建第二个数组,然后为后一种方法调用call_user_func_array()。 Dunno,如果它值得一塌糊涂。