- mysqli_query();
mysqli_query();는 실패했을 때 false를 리턴한다. 그렇다면 정상적으로 쿼리문이 주어졌을 때(정확하게는, SELECT, SHOW, DESCRIPE, EXPLIN 쿼리가 주어졌을 때)의 리턴 값은 무엇인지 알아보기 위해 var_dump(); 함수를 사용해 보았다.
그 결과 위와 같이 mysqli_result라는 객체가 리턴됨을 알 수 있었다. 이 객체에는 쿼리문을 통해 선택된 데이터들에 대한 여러 정보가 저장되어 있다.
mysqli_result에 대한 정보 : https://www.php.net/manual/en/class.mysqli-result.php
이 객체에 저장된 정보 중 특정 정보만을 가져오고 싶을 때는 ->를 사용한다. (여기서 num_rows는 행의 개수를 의미한다.)
2. mysqli_fetch
mysqli_query()를 통해서 가져온 데이터를 php에서 사용하기 위해서는 이를 php 문법에 맞게 변환하는 작업이 필요한데, 이를 수행하는 함수가 mysqli_fetch함수이다. 데이터를 어떤 데이터 타입으로 변환하는지에 따라 크게 fetch_row, fetch_assoc, fetch_array, fetch_object로 나뉜다고 한다.
mysqli_fetch_row() : 인덱스가 숫자인 배열로 리턴
mysqli_fetch_assoc() : column명을 인덱스로 하는 배열로 리턴
mysqli_fetch_array() : 인덱스가 숫자, column명인 배열로 리턴
mysqli_fetch_object() : 인덱스가 column명인 객체로 리턴
print_r() 함수를 사용하여 mysqli_fetch_array 함수의 리턴값을 확인해 보았다.
위와 같이 숫자와 column명을 인덱스로 하는 배열이 생성된다.
숫자 인덱스만으로 데이터를 가져올 수 있는 배열을 배열이라고 하고, column명을 통해 데이터를 가져올 수 있는 배열을 연관배열이라고 한다.
1) 하나의 행만을 가져오는 경우
하나의 행의 정보만을 배열에 저장하고 싶다면 위와 같이 WHERE을 사용할 수 있다.
2) 모든 행을 가져오는 경우
mysqli_fetch_array 함수는 함수를 호출할 때마다 인자로 주어진 쿼리문의 결과를 하나의 row씩 리턴한다는 특징이 있다. 모든 데이터가 리턴되어 더 이상 리턴될 데이터가 없는 경우 NULL을 리턴한다.
이 점을 이용해 while문을 사용해서 $result의 모든 데이터를 출력해 보았다.
- 태그를 사용하여 전체 글 목록을 출력하고자 할 때. 위와 같이 하나의 변수($list)에 모든 코드들을 저장해 출력할 수 있다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public class WhyMethod {
public static void main(String[] args) {
PrintTwoTimesA();
PrintTwoTimesA();
PrintTwoTimesA();
}
public static void PrintTwoTimesA() {
System.out.println("-");
System.out.println("A");
System.out.println("A");
}
}
|
cs |
'2021 > web' 카테고리의 다른 글
php -'(싱글 쿼터)와 "(더블 쿼터), 그리고 중괄호 (0) | 2021.07.16 |
---|---|
웹 스터디 3주차 - MySQL(1) (0) | 2021.07.15 |
웹 스터디 3주차 - php(2) (0) | 2021.07.06 |
웹 스터디 2주차 - php(1) (0) | 2021.01.17 |
웹 해킹 2주차 - XSS game 01 (0) | 2021.01.17 |