SQL挿入用のPHP配列のバインド
<p>SQL インジェクションを防ぐために配列をバインドしようとしています (最初の配列バインド)</p><p>これは有効なコードです: </p><p><br /> ;</p> ;
<pre class="lang-php prettyprint-override"><code>if (isset($_POST['checkbox_selected']))
{
$valuesArr = 配列();
foreach ($_POST['checkbox_selected'] as $key => $value) {
// 配列 ID を取得して CSVOption 列の行番号を見つけます
$findrow = array_search_partial($attributeid, $value);
// フォームが送信されると、属性値が属性 ID に割り当てられます。
$属性 = $値;
$csv = $csvcolumn[$findrow];
$valuesArr[] = "('$userid', '$feed_id', '$attribute', '$csv')";
}
$sql = "マップ (user_id、feed_id、attribute_id、csvcolumn) の値に挿入します。";
$sql .= implode(',', $valuesArr);
mysqli_query($conn,$sql);
}
</code></pre>
<p>配列をバインドできないので、試してみました: </p>
<pre class="brush:php;toolbar:false;">$sql = "マップ (user_id、feed_id、attribute_id、csvcolumn) の値に挿入 (?, ?, ? ,?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param('iiii', implode(',', $valuesArr));
$stmt->execute();
echo implode(',', $valuesArr)
//('1', '1', '13', '9') //これは SQL に挿入される配列です
//(user_id, feed_id,attribute_id, csvcolumn) //最初のステートメントで割り当てられた値は次のとおりです</pre>
<p><br /></p>