ホームページ > バックエンド開発 > PHPチュートリアル > MySQLi データベースから単一のレコードを効率的にフェッチするにはどうすればよいですか?

MySQLi データベースから単一のレコードを効率的にフェッチするにはどうすればよいですか?

DDD
リリース: 2024-12-19 22:31:18
オリジナル
600 人が閲覧しました

How to Efficiently Fetch a Single Record from a MySQLi Database?

MySQLi を使用してデータベースから単一レコードを取得する

MySQLi を使用してデータベースから単一行を取得することは、一連のレコードを反復処理することとは異なります。これを実現するには、MySQLi が提供するフェッチ メソッドを利用し、ループの必要性を排除します。

単一行を連想配列としてフェッチ

全体が必要な場合は、行を連想配列として使用するには、次の構文を使用できます。

$row = $result->fetch_assoc();
ログイン後にコピー

これにより、結果の最初の行が $row 変数に設定され、これを利用して個々の列の値にアクセスできます。

単一値のフェッチ

単一の値が必要な場合は、

// PHP 8.1+
$value = $result->fetch_column();

// Older PHP versions
$value = $result->fetch_row()[0] ?? false;
ログイン後にコピー

を使用できます。後者の構文は null 値をチェックし、次の場合は false を返します。

使用例

「users」テーブルの最初の行をフェッチするクエリの例を考えてみましょう。

$sql = "SELECT * FROM users LIMIT 1";
$row = mysqli_query($conn, $sql)->fetch_assoc();
ログイン後にコピー

次に、 $row['column_name'] を使用して特定の値にアクセスできます。例:

$name = $row['name'];
$email = $row['email'];
ログイン後にコピー

クエリでの変数の使用

SQL クエリで変数を使用する場合、SQL インジェクションを防ぐためにプリペアド ステートメントを使用することが重要です。たとえば、特定の ID に基づいて行をフェッチするには:

// PHP 8.2+
$id = 123;
$sql = "SELECT * FROM users WHERE id = ?";
$row = $conn->execute_query($sql, [$id])->fetch_assoc();

// Older PHP versions
$id = 123;
$stmt = $conn->prepare("SELECT * FROM users WHERE id = ?");
$stmt->bind_param("s", $id);
$stmt->execute();
$row = $stmt->get_result()->fetch_assoc();
ログイン後にコピー

以上がMySQLi データベースから単一のレコードを効率的にフェッチするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート