English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
MySQL 데이터베이스는 SQL SELECT 문을 사용하여 데이터를 쿼리합니다.
mysql> 명령 프롬프트 창에서 데이터베이스에서 데이터를 쿼리하거나 PHP 스크립트를 사용하여 데이터를 쿼리할 수 있습니다.
다음은 MySQL 데이터베이스에서 데이터를 쿼리하는 데 일반적인 SELECT 문법입니다:
SELECT column_name,column_name FROM table_name [WHERE 문] [LIMIT N][OFFSET M]
쿼리 문장에서는 하나나 여러 개의 테이블을 사용할 수 있으며, 테이블 간은 콤마(,)로 구분하고 WHERE 문을 사용하여 쿼리 조건을 설정할 수 있습니다.
SELECT 명령은 하나나 여러 기록을 읽을 수 있습니다.
를 사용하여*를 대신 사용하면 다른 필드 대신 모든 필드 데이터가 SELECT 문에 반환됩니다
WHERE 문을 사용하여 어떤 조건도 포함할 수 있습니다.
LIMIT 속성을 사용하여 반환할 기록 수를 설정할 수 있습니다.
OFFSET를 사용하여 SELECT 문에서 쿼리 시작 데이터의 오프셋을 지정할 수 있습니다. 기본적으로 오프셋은 0입니다.
SQL SELECT 명령을 통해 MySQL 데이터 테이블 w3codebox_tbl의 데이터를 반환합니다:
다음 예제는 데이터 테이블 w3codebox_tbl의 모든 레코드:
select * from w3codebox_tbl;
출력 결과:
PHP 함수 mysqli_query() 및 SQL SELECT 명령을 사용하여 데이터를 가져옵니다.
이 함수는 SQL 명령을 실행한 후 PHP 함수 mysqli_fetch_array()를 통해 모든 쿼리 데이터를 사용하거나 출력하는 데 사용됩니다.
mysqli_fetch_array() 함수는 결과 집에서 한 행을 관련 배열로, 또는 숫자 배열로, 또는 둘 다로 가져옵니다 결과 집에서 가져온 행에 따라 배열을 생성하여 반환하며, 더 이상 행이 없으면 false를 반환합니다.
다음 예제는 데이터 테이블 w3codebox_tbl에서 모든 기록을 읽습니다.
다음 예제를 통해 데이터 테이블 w3codebox_tbl의 모든 기록.
<?php $dbhost = 'localhost'; // mysql 서버 호스트 주소 $dbuser = 'root'; // mysql 사용자 이름 $dbpass = '123456'; // mysql 사용자 이름 비밀번호 $conn = mysqli_connect($dbhost, $dbuser, $dbpass); if (!$conn) { die('연결 실패: ' . mysqli_error($conn)); } // 编码 설정, 중국어 인쇄물 혼란 방지 mysqli_query($conn, "set names utf8'); $sql = 'SELECT w'3codebox_id, w3codebox_title, w3codebox_author, submission_date FROM w3codebox_tbl'; mysqli_select_db($conn, 'w'3codebox');}} $retval = mysqli_query( $conn, $sql ); if(! $retval ) { die('데이터 읽기 실패: ' . mysqli_error($conn)); } echo '<h2>기본 가이드 mysqli_fetch_array 테스트</h2">;</td> echo '<table border="1><tr><td>가이드 ID</td><td>제목</td><td>저자</td><td>제출 날짜</td></tr>"; while($row = mysqli_fetch_array($retval, MYSQLI_ASSOC)) { echo "<tr><td> {$row['w3codebox_id'}</td> ". "<td>{$row['w3codebox_title']} </td> ". "<td>{$row['w3codebox_author'} </td> ". "<td>{$row['submission_date']} </td> ". "</tr>"; } echo '</table>'; mysqli_close($conn); ?>
출력 결과는 다음과 같습니다:
위의 예제에서, 각 행의 기록을 변수 $row에 할당한 후 각 값을 출력합니다.
주의:문자열에서 변수를 사용할 경우, 변수를 괄호로 감싸주세요.
위의 예제에서 PHP mysqli_fetch_array() 함수의 두 번째 파라미터는 MYSQLI_ASSOC, 이 파라미터를 설정하여 쿼리 결과가 관련 배열로 반환되도록 할 수 있으며, 필드 이름을 배열의 인덱스로 사용할 수 있습니다.
PHP는 다른 함수를 제공합니다 mysqli_fetch_assoc(), 이 함수는 결과 집에서 한 행을 관련 배열로 가져옵니다. 결과 집에서 가져온 행에 따라 관련 배열을 생성하여 반환하며, 더 이상 행이 없으면 false를 반환합니다.
시도해 보세요, 이 예제는 다음과 같이 사용됩니다 mysqli_fetch_assoc() 함수를 사용하여 데이터 테이블 w를 출력합니다}}3codebox_tbl의 모든 레코드:
<?php $dbhost = 'localhost:3306'; // mysql 서버 호스트 주소 $dbuser = 'root'; // mysql 사용자 이름 $dbpass = '123456'; // mysql 사용자 이름 비밀번호 $conn = mysqli_connect($dbhost, $dbuser, $dbpass); if (!$conn) { die('연결 실패: ' . mysqli_error($conn)); } // 编码 설정, 중국어 인쇄물 혼란 방지 mysqli_query($conn, "set names utf8'); $sql = 'SELECT w'3codebox_id, w3codebox_title, w3codebox_author, submission_date FROM w3codebox_tbl'; mysqli_select_db($conn, 'w'3codebox');}} $retval = mysqli_query( $conn, $sql ); if(! $retval ) { die('데이터 읽기 실패: ' . mysqli_error($conn)); } echo '<h2>기본 강의 mysqli_fetch_assoc 테스트</h2">;</td> echo '<table border="1><tr><td>가이드 ID</td><td>제목</td><td>저자</td><td>제출 날짜</td></tr>"; while($row = mysqli_fetch_assoc($retval)) { echo "<tr><td> {$row['w3codebox_id'}</td> ". "<td>{$row['w3codebox_title']} </td> ". "<td>{$row['w3codebox_author'} </td> ". "<td>{$row['submission_date']} </td> ". "</tr>"; } echo '</table>'; mysqli_close($conn); ?>
출력 결과는 다음과 같습니다:
PHP mysqli_fetch_array() 함수의 두 번째 파라미터로 상수 MYSQLI_NUM를 사용하여 숫자 배열을 반환할 수도 있습니다.
다음 예제에서 사용 MYSQLI_NUM 파라미터로 데이터 테이블 w3codebox_tbl의 모든 레코드:
<?php $dbhost = 'localhost:3306'; // mysql 서버 호스트 주소 $dbuser = 'root'; // mysql 사용자 이름 $dbpass = '123456'; // mysql 사용자 이름 비밀번호 $conn = mysqli_connect($dbhost, $dbuser, $dbpass); if (!$conn) { die('연결 실패: ' . mysqli_error($conn)); } // 编码 설정, 중국어 인쇄물 혼란 방지 mysqli_query($conn, "set names utf8'); $sql = 'SELECT w'3codebox_id, w3codebox_title, w3codebox_author, submission_date FROM w3codebox_tbl'; mysqli_select_db($conn, 'w'3codebox');}} $retval = mysqli_query( $conn, $sql ); if(! $retval ) { die('데이터 읽기 실패: ' . mysqli_error($conn)); } echo '<h2>기본 가이드 mysqli_fetch_array 테스트</h2">;</td> echo '<table border="1><tr><td>가이드 ID</td><td>제목</td><td>저자</td><td>제출 날짜</td></tr>"; while($row = mysqli_fetch_array($retval, MYSQLI_NUM)) { echo "<tr><td> "{$row[0]}</td> ". "<td>{$row[1}</td></td> ". "<td>{$row[2}</td></td> ". "<td>{$row[3}</td></td> ". "</tr>"; } echo '</table>'; mysqli_close($conn); ?>
출력 결과는 다음과 같습니다:
위 세 가지 예제의 출력 결과는 모두 동일합니다.
SELECT 문을 실행한 후, 커서 메모리를 해제하는 것이 좋은 습관입니다.
PHP 함수 mysqli_free_result()를 사용하여 메모리를 해제할 수 있습니다.
다음 예제는 이 함수의 사용 방법을 보여줍니다.
다음 예제를 시도:
<?php $dbhost = 'localhost:3306'; // mysql 서버 호스트 주소 $dbuser = 'root'; // mysql 사용자 이름 $dbpass = '123456'; // mysql 사용자 이름 비밀번호 $conn = mysqli_connect($dbhost, $dbuser, $dbpass); if (!$conn) { die('연결 실패: ' . mysqli_error($conn)); } // 编码 설정, 중국어 인쇄물 혼란 방지 mysqli_query($conn, "set names utf8'); $sql = 'SELECT w'3codebox_id, w3codebox_title, w3codebox_author, submission_date FROM w3codebox_tbl'; mysqli_select_db($conn, 'w'3codebox');}} $retval = mysqli_query( $conn, $sql ); if(! $retval ) { die('데이터 읽기 실패: ' . mysqli_error($conn)); } echo '<h2>기본 가이드 mysqli_fetch_array 테스트</h2">;</td> echo '<table border="1><tr><td>가이드 ID</td><td>제목</td><td>저자</td><td>제출 날짜</td></tr>"; while($row = mysqli_fetch_array($retval, MYSQLI_NUM)) { echo "<tr><td> "{$row[0]}</td> ". "<td>{$row[1}</td></td> ". "<td>{$row[2}</td></td> ". "<td>{$row[3}</td></td> ". "</tr>"; } echo '</table>'; // 메모리 해제 mysqli_free_result($retval); mysqli_close($conn); ?>
출력 결과는 다음과 같습니다: