<span><span><span class="hljs-meta"><?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>->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>->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>-></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">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?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>-></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>->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">"<br><br>"</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>-></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">"<br>"</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">"<br>"</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">"<br>"</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">"<br>"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<hr>"</span></span><span>;
}
</span><span><span class="hljs-comment">// 4. 接続を閉じます</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span>-></span><span><span class="hljs-title function_ invoke__">free</span></span><span>();
</span><span><span class="hljs-variable">$conn</span></span><span>-></span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
関連タグ:
mysqli_result