mysqli_result :: fetch_rowは、結果セットからデータの行を取得するために使用されるmysqli拡張機能のメソッドです。戻り値は、行のデータを含むインデックス配列であり、各要素はクエリ結果のフィールド値に対応します。データの列が取得される場合、通常、単一のデータ要素を含む配列を返します。
サンプルコード:
<?php
// データベースに接続します
$mysqli = new mysqli("localhost", "username", "password", "database");
// 接続が成功しているかどうかを確認してください
if ($mysqli->connect_error) {
die("Connection failed: " . $mysqli->connect_error);
}
// クエリを実行します
$result = $mysqli->query("SELECT username FROM users");
// 単一の列データを取得します
$row = $result->fetch_row();
echo $row[0]; // データの最初の列は、クエリの結果を出力します,つまり、ユーザー名
?>
この例では、 $ row [0]はユーザー名列のデータです。 FETCH_ROW関数は、単一の列または単一行のデータが取得される場合に非常に適しています。
データベースから複数のユーザー名を持つ列を照会して、このデータを処理する方法を尋ねるとしますか?ループしてデータの各行を繰り返したり、さらに動作のために結果を配列に保存したりできます。
クエリの結果が、すべてのユーザー名の取得など、複数のデータの列である場合、 fetch_rowとwhileループを使用して、各行の結果を反復繰り返すことができます。
<?php
// すべてのユーザー名をクエリします
$query = "SELECT username FROM users";
$result = $mysqli->query($query);
// すべてのユーザー名を保存します
$usernames = [];
while ($row = $result->fetch_row()) {
$usernames[] = $row[0];
}
// すべてのユーザー名を出力します
foreach ($usernames as $username) {
echo $username . "<br>";
}
?>
データが配列に抽出されたら、フィルタリング、ソート、重複排除など、さまざまな処理を実行できます。たとえば、特定のキーワードを含むユーザー名をフィルタリングすると、これを実行できます。
<?php
// フィルターが含まれます"admin"ユーザー名
$filtered_usernames = array_filter($usernames, function($username) {
return strpos($username, 'admin') !== false;
});
// 输出过滤后ユーザー名
foreach ($filtered_usernames as $username) {
echo $username . "<br>";
}
?>
array_filter関数を介して、データベースから抽出された単一の列データを簡単に処理できます。
Webページのフロントエンドに抽出されたデータを表示したり、URLを介してフロントエンドに渡す必要がある場合があります。このデータをHTMLページの<code>タグに渡す必要があると仮定すると、このデータをHTMLに埋め込む方法の例を次に示します。
<?php
// ユーザーリストを出力します HTML
echo "<ul>";
foreach ($usernames as $username) {
echo "<li><code>m66.net/{$username}</code></li>";
}
echo "</ul>";
?>
ここでは、変更されたURLを含む各<li>タグに<code>タグを埋め込みました。このようにして、フロントエンドページにデータベースにデータを動的に表示できます。
データをURLと組み合わせて使用する必要がある場合は、これらのURLを<code>タグで直接生成できます。例えば:
<?php
// ユーザーごとに個人用ホームページリンクを出力します
foreach ($usernames as $username) {
echo "<p>ユーザーの個人用ホームページ: <code>https://m66.net/{$username}</code></p>";
}
?>
この例では、各ユーザーの個人用ホームページは、 M66.NETをドメイン名として完全なURLを動的に生成し、 <code>タグを介して形式と表示します。
エラー処理: fetch_rowを使用する場合、クエリの結果が空の場合、またはエラーが発生した場合、返品値はnullになります。 FETCH_ROWの返品値をチェックすることにより、有効なデータが処理されることを確認できます。
$row = $result->fetch_row();
if ($row) {
// データの処理
echo $row[0];
} else {
// データのない状況を処理します
echo "データは見つかりません";
}
パフォーマンスの最適化:データの量が非常に多い場合は、ページングクエリを使用するか、クエリによって返される行の数を制限して、一度にデータの過剰なロードによりメモリの過度の使用を回避することをお勧めします。
この記事を通じて、 MySqli_Result :: FETCH_ROWを使用して単一の列データを取得および処理する方法を理解し、このデータを実際のフロントエンドページに適用する方法を学ぶことができるはずです。これらの例が、データベースの操作とデータプレゼンテーションをより適切に実行できるようにすることを願っています。