Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- MySQL
- formula
- 동작안함
- includes()
- 1064
- getimagesize()
- 오류
- 지직거림
- srtpos()
- 일부 문자열 포함여부
- 배열
- 중간에추가
- error
- 서버부하
- myshortcut
- 노션
- 정규식
- implode()
- jQuery
- ES6
- 이걸 그렇게 쓸 줄은 몰랐지
- 특수문자 포함여부
- Excel
- JavaScript
- SQL
- php
- explode()
- strpos()
- primary_key
- 문자열 포함여부
Archives
- Today
- Total
코딩짜는 일상
[PHP] mysql_fetch_array와 mysql_fetch_assoc 차이 - print_r 출력 차이 본문
반응형
mysql_fetch_array
와 mysql_fetch_assoc
를 보면
둘은 쓰는 방식도 똑같은데 왜 함수가 2가지일까,
둘의 차이가 대체 뭘까 고민을 했습니다.print_r
을 써보면 확실하게 차이를 알 수 있다길래 해봤습니다.
출력할 테이블
idx | name | age |
---|---|---|
1 | emily | 20 |
3 | nick | 35 |
5 | json | 14 |
SELECT * FROM member oder by idx asc;
mysql_fetch_array (PHP 5 이전)
(= mysqli_fetch_array 또는 fetch_array )
Array
(
[0] => 1
[idx] => 1
[1] => emily
[name] => emily
[2] => 20
[age] => 20
)
mysql_fetch_assoc (PHP 5 이전)
(= mysqli_fetch_assoc 또는 fetch_assoc )
Array
(
[idx] => 1
[name] => emily
[age] => 20
)
결론
둘 다 for, while, foreach 같은 반복문으로 다음 row를 불러와야 하는 건 같습니다.
하지만 각각의 장단점이 있습니다.array
는 칼럼명 말고도 숫자를 써서 불러내는 것이 가능합니다.
$row['name'] = emily
$row['1'] = emily
만약 칼럼의 갯수가 많고 페이지에 우리가 보는 SQL 테이블처럼
한 row의 정보를 모두 꺼내 표처럼 볼 거라면 이런 것도 가능하죠.
<tbody>
<tr>
<?php
foreach($row1 as $a => $b){
for($i=0; $rows=$row1[$a][$i]; $i++){ ?>
<td><?php print_r($row1[$a][$i]); ?></td>
<?php
}
} ?>
</tr>
</tbody>
단점은 같은 row를 2번 불러온 것과 같아서 서버에 부하가 커진다는 점입니다.
반면, assoc
은 칼럼명으로만 불러올 수 있습니다.
$row['name'] = emily
페이지에 칼럼을 선택해 불러올 거라면 assoc
가 나을 수 있습니다.
서버의 부하도 적다는 것이 장점입니다.
다만 칼럼명을 바꾼다면 코드도 같이 바꿔줘야하는 단점이 있겠죠.
(사실상 잘 없는 일이라 assoc
를 주로 씁니다.)
반응형