私はいつも自分の値の配列を execute に渡してきました。私は最近スクリプトに取り組んでいて、それが bindParam を使用していることに気付き、後でこれが変数参照を渡す方法を見つけるようになりました (私は知りませんでした)。
そうは言っても、現在のプロジェクトでは、現在の配列の使用法ではなく、bindParam のかなりの使用法を考えることができます。
そうは言っても、bindValue/bindParam と実行時に配列を使用することの間にパフォーマンスの違いはありますか? 特にループが繰り返される場合は? $stmt->execute( array_merge($binding_clause, $binding) );
私は、変更されないバインドがいくつかある場所で 多くのことを行っていることに気付きました。もちろん、ループ内で変更されるバインドもいくつかあります。
型 (PDO::PARAM_STR、PDO::PARAM_INT) を最初に追加すると、配列を使用するときにそうしない場合よりもパフォーマンスがありますか (配列ではデフォルトで文字列であると思います)。
2つの違いの例(これらは準備されたステートメントです):
$binding = array(
'cw_account_id' => $_SESSION['user']['account_id'],
'cw_date_start' => $date_start,
'cw_date_end' => $date_end,
'cw_start' => $b_counter * 500
);
$stmt->execute($binding);
compared to
$stmt->bindValue(':cw_account_id', $_SESSION['user']['account_id'], PDO::PARAM_INT);
$stmt->bindValue(':cw_date_start', $date_start, PDO::PARAM_INT);
$stmt->bindValue(':cw_date_end', $date_end, PDO::PARAM_INT);
$stmt->bindValue(':cw_start', $b_counter * 500, PDO::PARAM_INT);
$stmt->execute();
上記の質問は$stmt->bindValue()
別として、配列メソッドを使用する場合と比較して、ここではそれぞれがデータベースへの別の旅行になりますか?
コードの読みやすさと、bindParam が値を参照する方法は別として、2 つの間にパフォーマンスのプラス/マイナスがありますか (小規模および大規模な使用法... 繰り返しループが含まれます)?