PHP 데이터베이스 작업: 사용자 일괄 및 특정 삭제
섹션 13.3 "단계를 통해 목록 표시 만들기"에 있습니다. 삭제 전에는 단일 행의 데이터 삭제와 여러 행의 데이터 삭제가 있습니다.
단일 선택 또는 다중 선택 삭제할지 결정
1. 다음을 통해 delete.php 파일에 한 줄이 전달됩니다. 매개변수를 가져옵니다. 해당 ID를 에 작성합니다.
2. 다중 삭제 시 POST를 통해 해당 ID를 delete.php 페이지로 전달합니다.
3. 둘 중 어느 것도 충족되지 않으면 불법 데이터로 간주됩니다.
if (is_array($_POST['id'])) { $id = join(',', $_POST['id']); } elseif (is_numeric($_GET['id'])) { $id = (int) $_GET['id']; } else { echo '数据不合法'; exit; }
결합된 SQL 문
이전에 MySQL 장에서 삭제할 때 하위 문을 사용할 수 있다고 설명했습니다.
여기에서도 마찬가지로 in 하위 문을 사용하여 효과를 얻을 수 있습니다.
join 함수는 다중 선택 삭제로 전달된 id를 3, 4, 5의 형식으로 변경합니다. 다중 선택 삭제의 SQL 문을 실행한 최종 결과는
delete from user where id in(3,4,5,6,8);
이고 단일 선택 삭제 명령문 효과는 다음과 같습니다.
delete from user where id in(3)
이러한 방식으로 단일 선택 및 다중 선택 적응 효과를 얻습니다.
$sql = "delete from user where id in($id)";
최종 완성 코드 데모는 다음과 같습니다.
<?php include 'connection.php'; if (is_array($_POST['id'])) { $id = join(',', $_POST['id']); } elseif (is_numeric($_GET['id'])) { $id = (int) $_GET['id']; } else { echo '数据不合法'; exit; } $sql = "delete from user where id in($id)"; $result = mysqli_query($conn, $sql); if ($result) { echo '删除成功'; } else { echo '删除失败'; } ?>