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 は動的バインディングを非常に複雑にします。

配列を単一の配列にマージしてから、参照用に 2 番目の配列を作成してから、call_user_func_array()この後者のアプローチを呼び出す必要があります。混乱する価値があるかどうかはわかりません。

于 2013-05-20T20:55:16.147 に答える