PHP 개발 기본 튜토리얼: 사용자 일괄 삭제 및 특정 삭제

데이터베이스 연결 기능 캡슐화

실제 프로젝트에서는 호스트와 사용자 이름을 사용하며, 비밀번호, 라이브러리는 모두 구성 파일에 기록됩니다.
코드에 하드하게 썼다면, 데이터베이스 서버의 관련 정보가 바뀌었다면, 코드를 전부 수정한다는 것은 프로그래머의 생각과 분명히 맞지 않습니다.

또한 모든 페이지에서 데이터베이스에 연결해야 합니다. 우리 모두는 연결을 작성하고, 오류를 판단하고, 문자 세트를 설정해야 하는데 이는 너무 번거롭습니다. 그리고 이러한 코드를 재사용하는 것은 도움이 되지 않습니다.

앞서 언급한 일련의 포함 기능을 사용하여 목표를 달성할 수 있습니다. 예시 그림은 다음과 같습니다.

118.png

따라서 구성 파일 config.php를 만들 수 있습니다. 상수로 사용해야 하는 모든 구성을 설정합니다. 코드는 다음과 같습니다.

<?php
//数据库服务器
define('DB_HOST', 'localhost');

//数据库用户名
define('DB_USER', 'root');

//数据库密码
define('DB_PWD', 'secret');

//库名
define('DB_NAME', 'book');

//字符集
define('DB_CHARSET', 'utf8');

추출해 보겠습니다. Connection.php 페이지에서 나중에 데이터베이스에 연결해야 하는 경우에는 Connection.php 파일만 포함하면 됩니다. 코드는 다음과 같습니다.

<?php

include 'config.php';

$conn = mysqli_connect(DB_HOST, DB_USER, DB_PWD, DB_NAME);

if (mysqli_errno($conn)) {
    mysqli_error($conn);
    exit;
}

mysqli_set_charset($conn, DB_CHARSET);

향후 각 파일에 Connection.php 파일을 직접 포함시켜 데이터베이스 연결을 구현할 수 있습니다.

include 'connection.php';

위의 준비를 완료한 후, 데이터 삭제


사용자를 일괄적으로 삭제하고 구체적으로 데이터는 여전히 여러 행의 데이터를 삭제합니다.

get을 통해 매개변수를 전달하여 한 줄로 해당 ID를 delete.php 파일에 씁니다.

그리고 여러 번 삭제하면 해당 ID가 POST를 통해 delete.php 페이지로 전달됩니다.
  • 이 둘 중 어느 것도 충족되지 않으면 불법 데이터로 간주됩니다.
  • 아아앙

결합된 SQL문


이전 MySQL 장에서 삭제할 때 in 하위 문을 사용할 수 있다고 설명했습니다.

여기에서도 마찬가지로 in 하위 문을 사용하여 효과를 얻을 수 있습니다.

join 함수는 다중 선택 삭제로 전달된 id를 3, 4, 5의 형식으로 변경합니다. 다중 선택 삭제의 SQL 문을 실행한 최종 결과는

if (is_array($_POST['id'])) {

    $id = join(',', $_POST['id']);

} elseif (is_numeric($_GET['id'])) {

    $id = (int) $_GET['id'];

} else {
    echo '数据不合法';
    exit;
}

이고 단일 선택 삭제 명령문 효과는 다음과 같습니다.

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 '删除失败'; }
  • 코스 추천
  • 코스웨어 다운로드
현재 코스웨어를 다운로드할 수 없습니다. 현재 직원들이 정리하고 있습니다. 앞으로도 본 강좌에 많은 관심 부탁드립니다~