레코드 검색하기
PHP에서 DB 테이블에 있는 레코드를 방법에 대해 알아봅시다. 다음 예제에서는 select 명령으로 전체 레코드를 검색하며 화면에 출력합니다.
| select * from friend; |
09/ex9-5.php
<?php
$servername = "localhost"; // 서버명
$username = "user"; // 사용자명
$password = "1234"; // 비밀번호
$dbname = "sample"; // DB명
// MySQL 연결하기
$conn = mysqli_connect($servername, $username, $password, $dbname);
// $sql에 전체 레코드 검색 명령 저장
$sql = "select * from friend;"; // 11
$result = mysqli_query($conn, $sql); // 13
while($row = mysqli_fetch_assoc($result)) { // 15
echo "이름 : ".$row["name"]."<br>";
echo "전화번호 : ". $row["tel"]."<br>";
echo "주소 : ". $row["address"]."<br>";
echo "----------------------------------------<br>";
} // 20
mysqli_close($conn);
?>

11 $sql에 select 명령으로 전체 레코드를 검색하는 명령을 지정합니다.
13 mysqli_query() 함수를 이용하여 $sql에 저장된 실행한 다음 그 결과를 $result에 저장합니다. $result는 다음과 같이 friend 테이블의 모든 레코드 정보를 담고 있습니다.

15~20 while($row = mysqli_fetch_assoc($result)) {
echo "이름 : ".$row["name"]."<br>";
echo "전화번호 : ". $row["tel"]."<br>";
echo "주소 : ". $row["address"]."<br>";
echo "----------------------------------------<br>";
}
while문이 시작되면 mysqli_fetch_assoc($result)를 실행하여 $result에서 첫 번째 레코드를 가져와 $row에 저장합니다. $row["name"]은 name 필드의 값 '홍길동'을 의미합니다. $row["tel"]은 tel 필드의 값 '01012345678'을 나타냅니다. 그리고 $row["address"]는 '경기도 수원시 권선구 온정로 123'을 나타냅니다.
이러한 방식으로 while 루프가 반복되면서 실행 결과에서와 같이 friend 테이블의 모든 레코드에 대해 name, tel, addresses 필드의 값을 화면에 출력합니다.
mysqli_fetch_assoc(결과)
mysqli_query()를 실행하여 얻은 결과에서 하나의 레코드를 가져옵니다. 가져온 레코드는 연관 배열(Associate Array) 형태로 되어 있습니다.
- 결과 : mysqli_query()를 실행하여 얻은 결과
이번에는 friend 테이블에서 '윤채린'의 전화번호를 가져와 출력하는 방법에 대해 알아봅시다. '윤채린'의 이름과 전화번호를 가져오는 SQL 명령은 다음과 같습니다.
| select name, tel from friend where name='윤채린'; |
09/ex9-6.php
<?php
$servername = "localhost"; // 서버명
$username = "user"; // 사용자명
$password = "1234"; // 비밀번호
$dbname = "sample"; // DB명
// MySQL 연결하기
$conn = mysqli_connect($servername, $username, $password, $dbname);
// $sql에 '윤채린'의 이름, 전화번호 검색 명령 저장
$sql = "select name, tel from friend where name='윤채린';"; // 11
$result = mysqli_query($conn, $sql); // 13
$row = mysqli_fetch_assoc($result); // 14
echo $row["name"]."의 전화번호 : ".$row["tel"]."<br>"; // 16
mysqli_close($conn);
?>

11 $sql에 name 필드가 '윤채린'인 레코드의 이름과 전화번호를 검색하는 명령을 저장합니다.
13 mysqli_query() 함수를 이용하여 $sql에 저장된 SQL 명령을 실행한 다음 그 결과를 $result에 저장합니다.
14 mysqli_fetch_assoc($result) 함수로 $result에 있는 한 행의 레코드를 연관 배열 형태로 가져와 $row에 저장합니다.
16 $row["name"]은 '윤채린'의 겂을 가지고, $row["tel"]은 01059856767'의 값을 가집니다. echo 문으로 실행 결과에서와 같은 냉을 출력합니다.
'프로그래밍 언어 > PHP' 카테고리의 다른 글
| 레코드 정렬하기 (0) | 2026.06.27 |
|---|---|
| 레코드 삽입하기 (0) | 2026.06.25 |
| PHP에서 DB 테이블 생성하기 (0) | 2026.06.24 |
| MySQL 서버 접속하기 (0) | 2026.06.24 |
| MySQL API란? (0) | 2026.06.24 |