sql_query / foreach 학문적 궁금증

sql_query / foreach 학문적 궁금증

QA

sql_query / foreach 학문적 궁금증

답변 2

본문

$sql = "SELECT vs_date FROM {$g5['visit_sum_table']}";
$result = sql_query($sql);
print_r2($result);

foreach ($result as $row) {
    $count = sql_fetch("SELECT COUNT(*) AS cnt FROM {$g5['visit_table']} WHERE vi_date = '{$row['vs_date']}'");

    ....

 

위 코드에서 파란색부분의 $result 값은 아래처럼 배열형태입니다.

mysqli_result Object
(
    [current_field] => 0
    [field_count] => 1
    [lengths] => 
    [num_rows] => 87
    [type] => 0
)

 

그런데, foreach 반복문에서 $result를 $row 로 치환 시,

어떻게 해서 $row값에 해당 테이블 행의 컬럼과 값이 들어갈 수 있는지 궁금합니다.

(예) $row['vs_date']

 

보통, as로 치환 시, 키=>값  (또는, 그냥 값) 형태로 담기는 걸로 아는데, 

그럴 경우, $row에 담기는 것은 $result 결과에 나온 배열키가 맞는 것 같은데 (예: $row['type'])

어떻게 해서 $row에 해당 테이블의 컬럼명이 배열키로 사용될 수 있는지 궁금합니다.

 

 

이 질문에 댓글 쓰기 :

답변 2

https://stackoverflow.com/a/41199224

(mysqli_result object는 Traversable 인터페이스를 지원하고, 반복되면 내부적으로 fetch()를 호출한다?)

 

$result는 배열이 아니라 객체(Object) 입니다. (mysqli_result Object) 

배열인 경우 print_r() 출력시 Array ( [~] => ~) 같은 형태로 나옵니다.

 

저도 처음 알게 된 사실이라.. 이정도 밖에 찾지 못했습니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 42
© SIRSOFT
현재 페이지 제일 처음으로