현재 위치: > 최신 기사 목록> [mysqli_result :: fetch_fields 복잡한 쿼리를 구현하기 위해 mysqli_fetch_assoc과 함께 사용하는 방법?

[mysqli_result :: fetch_fields 복잡한 쿼리를 구현하기 위해 mysqli_fetch_assoc과 함께 사용하는 방법?

gitbox 2025-08-16
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 이것은 기사의 내용과 관련이 없습니다.PHP코드 섹션,초기화 또는 구성 코드가 될 수 있습니다</span></span><span>
</span><span><span class="hljs-variable">$servername</span></span><span> = </span><span><span class="hljs-string">"localhost"</span></span><span>;
</span><span><span class="hljs-variable">$username</span></span><span> = </span><span><span class="hljs-string">"root"</span></span><span>;
</span><span><span class="hljs-variable">$password</span></span><span> = </span><span><span class="hljs-string">""</span></span><span>;
</span><span><span class="hljs-variable">$dbname</span></span><span> = </span><span><span class="hljs-string">"test_db"</span></span><span>;

</span><span><span class="hljs-variable">$conn</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-variable">$servername</span></span><span>, </span><span><span class="hljs-variable">$username</span></span><span>, </span><span><span class="hljs-variable">$password</span></span><span>, </span><span><span class="hljs-variable">$dbname</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$conn</span></span><span>-&gt;connect_error) {
    </span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"연결이 실패했습니다: "</span></span><span> . </span><span><span class="hljs-variable">$conn</span></span><span>-&gt;connect_error);
}

</span><span><span class="hljs-variable">$query</span></span><span> = </span><span><span class="hljs-string">"SELECT users.id, users.name, orders.order_date, orders.amount FROM users LEFT JOIN orders ON users.id = orders.user_id"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-variable">$conn</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-variable">$query</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
<span class="hljs-comment">/*
 * mysqli_result::fetch_fields() 그리고 mysqli_fetch_assoc() 공동 사용
 * 복잡한 쿼리 결과의 동적 처리를 구현하는 데 사용됩니다
 *
 * 복잡한 쿼리,많은 필드 이름이있을 수 있습니다,그리고 중복 또는 별명이 있습니다,사용fetch_fields현장 메타 정보를 얻을 수 있습니다,
 * 결합fetch_assoc데이터는 연관 배열에서 한 줄씩 줄을 읽을 수 있습니다.,보다 유연한 데이터 작업을 달성하십시오。
 */</span>

</span><span><span class="hljs-comment">// 1. 현장 정보를 얻으십시오</span></span><span>
</span><span><span class="hljs-variable">$fields</span></span><span> = </span><span><span class="hljs-variable">$result</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">fetch_fields</span></span><span>();

</span><span><span class="hljs-comment">// 2. 모든 필드 이름을 인쇄하십시오(데모 사용)</span></span><span>
</span><span><span class="hljs-variable">$fieldNames</span></span><span> = [];
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$fields</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$field</span></span><span>) {
    </span><span><span class="hljs-variable">$fieldNames</span></span><span>[] = </span><span><span class="hljs-variable">$field</span></span><span>-&gt;name;
}
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"쿼리 필드가 있습니다: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">implode</span></span><span>(</span><span><span class="hljs-string">", "</span></span><span>, </span><span><span class="hljs-variable">$fieldNames</span></span><span>) . </span><span><span class="hljs-string">"&lt;br&gt;&lt;br&gt;"</span></span><span>;

</span><span><span class="hljs-comment">// 3. 라인별로 데이터를 얻고 키로 필드 이름으로 배열을 구성합니다.</span></span><span>
</span><span><span class="hljs-keyword">while</span></span><span> (</span><span><span class="hljs-variable">$row</span></span><span> = </span><span><span class="hljs-variable">$result</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">fetch_assoc</span></span><span>()) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"사용자ID: "</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'id'</span></span><span>] . </span><span><span class="hljs-string">"&lt;br&gt;"</span></span><span>;
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"사용자名: "</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'name'</span></span><span>] . </span><span><span class="hljs-string">"&lt;br&gt;"</span></span><span>;
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"주문 날짜: "</span></span><span> . (</span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'order_date'</span></span><span>] ?? </span><span><span class="hljs-string">'주문 없음'</span></span><span>) . </span><span><span class="hljs-string">"&lt;br&gt;"</span></span><span>;
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"주문 금액: "</span></span><span> . (</span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'amount'</span></span><span>] ?? </span><span><span class="hljs-string">'금액 없음'</span></span><span>) . </span><span><span class="hljs-string">"&lt;br&gt;"</span></span><span>;
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"&lt;hr&gt;"</span></span><span>;
}

</span><span><span class="hljs-comment">// 4. 연결을 닫으십시오</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">free</span></span><span>();
</span><span><span class="hljs-variable">$conn</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>