Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

PHP로 MySQL 테이블 데이터 삭제하기 – DELETE 쿼리 실행 방법과 예제

PHP에서는 mysql_query() 함수를 사용해 SQL DELETE 명령을 실행할 수 있으며, 이때 WHERE 절을 붙이거나 붙이지 않아도 됩니다. 이 함수는 mysql> 프롬프트에서 SQL 명령을 직접 실행하는 것과 동일한 방식으로 동작합니다.

예제

다음 예제는 tutorials_tbl 테이블에서 tutorial_id가 3인 레코드 하나를 삭제하는 PHP 스크립트입니다.

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);

   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }

   $sql = 'DELETE FROM tutorials_tbl WHERE tutorial_id=3';

   mysql_select_db('TUTORIALS');
   $retval = mysql_query( $sql, $conn );

   if(! $retval ) {
      die('Could not delete data: ' . mysql_error());
   }
   echo "Deleted data successfully\n";
   mysql_close($conn);
?>

코드 단계별 설명

  • mysql_connect(): 호스트, 사용자 이름, 비밀번호를 사용해 MySQL 서버에 연결합니다. 연결에 실패하면 die()로 스크립트를 종료하고 오류 메시지를 출력합니다.
  • $sql: tutorial_id가 3인 레코드만 삭제하도록 WHERE 절을 포함한 DELETE 문입니다. WHERE 절을 생략하면 테이블의 모든 데이터가 삭제되므로 반드시 주의해야 합니다.
  • mysql_select_db(): 작업할 데이터베이스('TUTORIALS')를 선택합니다.
  • mysql_query(): 준비된 SQL 문을 실행하며, 실행에 실패하면 오류 메시지와 함께 스크립트를 종료합니다.
  • mysql_close(): 작업이 끝난 후 MySQL 연결을 닫아 리소스를 해제합니다.

주의: 최신 PHP 환경이라면

mysql_* 계열 함수는 PHP 5.5부터 지원이 중단(deprecated)되었고 PHP 7부터는 완전히 제거되었습니다. 따라서 최신 프로젝트에서는 mysqli 확장이나 PDO를 사용하는 것이 좋습니다. 위 코드를 mysqli 기반으로 변환하면 다음과 같습니다.

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   $dbname = 'TUTORIALS';

   $conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname);

   if ($conn->connect_error) {
      die('Could not connect: ' . $conn->connect_error);
   }

   $sql = 'DELETE FROM tutorials_tbl WHERE tutorial_id=3';

   if ($conn->query($sql) === TRUE) {
      echo "Deleted data successfully\n";
   } else {
      die('Could not delete data: ' . $conn->error);
   }

   $conn->close();
?>