다중 체크박스 배열 삽입
체크박스 값이 그렇지 않은 경우 데이터베이스에 삽입되면 HTML의 이름 속성 인덱스와 PHP 배열 요소 사이에 불일치가 있을 수 있습니다. 이 문제를 해결하려면 각 체크박스 요소에 대해 고유 인덱스를 명시적으로 설정해야 합니다.
<code class="html"><input tabindex="1" name="checkbox[0]" type="checkbox" value="17" /> <input tabindex="1" name="checkbox[1]" type="checkbox" value="20" /></code>
이렇게 하면 각 체크박스가 $_POST['checkbox'] 배열에 고유한 인덱스를 갖게 됩니다.
선택되지 않은 확인란이 삽입되는 것을 방지
선택되지 않은 확인란이 데이터베이스에 삽입되는 것을 방지하려면 해당 값을 삽입하기 전에 각 확인란이 선택되었는지 명시적으로 확인해야 합니다.
<code class="php">if(isset($_POST['checkbox'])) { foreach($_POST['checkbox'] as $check) { if(!empty($check)) { $check = implode(',', $_POST['checkbox']); $name = implode(',', $_POST['item']); $quantity = implode(',', $_POST['quantity']); } }</code>
삽입 쿼리에 준비된 문 방법 사용
mysql_query를 사용하는 대신 SQL 주입 공격을 방지하기 위해 삽입 쿼리에 준비된 문을 사용하는 것이 좋습니다. 삽입 방법을 수정하는 방법은 다음과 같습니다.
<code class="php">$stmt = $conn->prepare("INSERT INTO purchases (Product, Quantity, Price) VALUES (?, ?, ?)"); $stmt->bind_param("sis", $name, $quantity, $price); foreach ($_POST['checkbox'] as $i => $price) { $name = $_POST['name'][$i]; $quantity = $_POST['quantity'][$i]; $stmt->execute(); }</code>
기타 고려 사항
위 내용은 PHP의 MySQL 데이터베이스에 여러 확인란 및 텍스트 상자 배열을 삽입하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!