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) {
//CSVOption 열의 행 번호를 찾기 위해 배열 ID를 검색합니다.
$findrow = array_search_partial($attributeid, $value);
//양식이 제출되면 속성 값이 속성 ID에 할당됩니다.
$속성 = $값;
$csv = $csvcolumn[$findrow];
$valuesArr[] = "('$userid', '$feed_id', '$attribute', '$csv')";
}
$sql = "INSERT INTO 맵(user_id, Feed_id, attribute_id, csvcolumn) 값 ";
$sql .= implode(',', $valuesArr);
mysqli_query($conn,$sql);
}
<p>배열을 바인딩할 수 없습니다. 시도했습니다:</p>
<pre class="brush:php;toolbar:false;">$sql = "INSERT INTO 맵(user_id, Feed_id, attribute_id, csvcolumn) VALUES (?, ?, ? ,?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param('iiii', implode(',', $valuesArr));
$stmt->execute();
에코 내파(',', $valuesArr)
//('1', '1', '13', '9') //SQL에 삽입된 배열입니다.
//(user_id, Feed_id, attribute_id, csvcolumn) //첫 번째 문에 할당된 값은 다음과 같습니다</pre>
<p><br /></p>