PHP의 MySQL 데이터베이스에 여러 확인란 및 텍스트 상자 배열을 삽입하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-10-27 20:37:30
원래의
479명이 탐색했습니다.

How to Insert Multiple Checkbox and Textbox Arrays into a MySQL Database in PHP?

PHP에서 MySQL 데이터베이스에 다중 체크박스 및 텍스트 상자 배열 삽입

다중 체크박스 배열 삽입

체크박스 값이 그렇지 않은 경우 데이터베이스에 삽입되면 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>
로그인 후 복사

기타 고려 사항

  • 데이터베이스에서 가격을 하드코딩하는 대신 데이터베이스에서 검색하는 것이 좋습니다. HTML을 사용하여 변조를 방지하세요.
  • 데이터베이스 연결 및 쿼리 실행을 위해 MySQLi와 mysql API를 혼합하지 마세요.

위 내용은 PHP의 MySQL 데이터베이스에 여러 확인란 및 텍스트 상자 배열을 삽입하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿