fetch_row()
- 인덱스 번호로 배열 요소들을 가져온다.
- 예를 들어서 다음과 같은 SELECT문이 있다고 하자.
SELECT transaction_date, total_amount FROM sales WEHRE MONTH(transaction_date) = MONTH(NOW())
이 쿼리문을 실행하여 fetch_row()로 배열 요소를 가져오면 거래 날짜는 0번, 총 금액은 1번 인덱스를 가지게 된다.
$sql = "SELECT transaction_date, total_amount
FROM sales
WHERE MONTH(transaction_date) = MONTH(NOW())";
$result = $connect->query($sql);
while($row = $result -> fetch_row()){
echo "거래 날짜 : " . $row[0] . "\n" .
"총 금액 : ". $row[1] . "\n";
}
위와 같이 실행하면 다음과 같은 결과가 나온다.
fetch_assoc()
- associative array(연관 배열)의 약자로 컬럼명으로 배열 요소들을 가져온다.
while($assoc = $result -> fetch_assoc()){
echo "거래 날짜 : " . $assoc['transaction_date'] . "\n" .
"총 금액 : ". $assoc['total_amount'] . "\n";
}
가져오는 방법만 달라졌지 값은 동일하다.
fetch_array()
- 인덱스 번호와 컬럼명 모두를 지원한다.
while($array = $result -> fetch_array()){
echo "(인덱스) 거래 날짜 : " . $array[0] . "\n" .
"(인덱스) 총 금액 : ". $array[1] . "\n";
}
while($array = $result -> fetch_array()){
echo "(컬럼명) 거래 날짜 : " . $array['transaction_date'] . "\n" .
"(컬럼명) 총 금액 : ". $array['total_amount'] . "\n";
}
다만,배열의 길이로 반복문을 실행하는 경우 주의해야한다.
$row = $result -> fetch_row();
$assoc = $result -> fetch_assoc();
$array = $result -> fetch_array();
echo "row count : " . count($row) . "\n";
echo "assoc count : " . count($assoc) . "\n";
echo "array count : " . count($array);
요소는 3개의 배열 모두 거래 시간, 총 금액으로 같지만 array 같은 경우는 인덱스 번호와 컬럼명을 모두 지원하기 때문에 요소 크기가 2배가 된다.
따라서 array의 길이로 반복문을 실행하여 조회하면 원래의 요소 2개를 넘어가게 되면 조회가 되지 않는다.
'프로그래밍 > Server' 카테고리의 다른 글
Fetal error: Call to undefined function curl_init() (1) | 2024.04.19 |
---|---|
[AWS] Ubuntu 22.04 LTS에 JAVA 설치하기 (0) | 2024.02.20 |
[AWS] Ubuntu 22.04 LTS에 APM 설치하기 (Apache + PHP + MySQL) (0) | 2024.02.19 |
[AWS] EC2 인스턴스 생성과 ssh config 설정으로 EC2 간편 접속하기 (0) | 2024.02.18 |
'error: uninstall vscode server from host' 해결 (0) | 2024.01.24 |