MySQLi を使用したデータベースからの単一レコードの取得
データベースからの単一レコードの取得は、ループに頼らずに MySQLi を使用して実現できます。効率的なデータの取得には、関連する構文と手法を理解することが重要です。
連想配列行の取得
行全体を連想配列として取得するには、 fetch_assoc( ) 結果オブジェクトのメソッド。たとえば、「users」テーブルから行を取得するには:
<?php // Connect to the database $query = "SELECT * FROM users LIMIT 1"; $result = $conn->query($query); $row = $result->fetch_assoc(); // Print the user's name echo "Name: {$row['name']}"; ?>
単一値のフェッチ
特定の値のみが必要な場合は、 fetch_column( )メソッド(PHP8.1以降)が使用可能です。 8.1 より前の PHP バージョンの場合は、 fetch_row()[0] 構文を使用します。たとえば、データベース内のユーザー数を取得するには:
<?php // Connect to the database $query = "SELECT COUNT(*) FROM users"; $result = $conn->query($query); $count = $result->fetch_column(); // Print the user count echo "Total users: {$count}"; ?>
変数を含むプリペアド ステートメントの使用
クエリで変数を使用する必要がある場合は、プリペアド ステートメントを使用します。 SQL インジェクションを防ぐには、ステートメントを使用する必要があります。 PHP 8.2 以降の場合は、execute_query() メソッドを使用します。
<?php // Connect to the database $query = "SELECT * FROM users WHERE id = ?"; $id = 1; $row = $conn->execute_query($query, [$id])->fetch_assoc(); // Print the user's name echo "Name: {$row['name']}"; ?>
8.2 より前の PHP バージョンの場合は、ステートメントを手動で準備して実行します。
<?php // Connect to the database $query = "SELECT * FROM users WHERE id = ?"; $stmt = $conn->prepare($query); $stmt->bind_param('s', $id); // Bind the variable as a string $id = 1; $stmt->execute(); $result = $stmt->get_result(); $row = $result->fetch_assoc(); // Print the user's name echo "Name: {$row['name']}"; ?>
以上がMySQLi を使用して単一のデータベース レコードを効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。