ホームページ > バックエンド開発 > PHPチュートリアル > MySQL LIKE クエリからすべての結果を効率的にフェッチするにはどうすればよいですか?

MySQL LIKE クエリからすべての結果を効率的にフェッチするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-14 19:27:12
オリジナル
397 人が閲覧しました

How to Efficiently Fetch All Results from a MySQL LIKE Query?

LIKE と複数の結果を含む MySQL クエリ

MySQL では、クエリで LIKE 演算子を使用すると、複数の結果が返されることがあります。一致する結果をすべて取得するには、適切な取得メソッドを使用する必要があります。

すべての結果の取得

クエリからすべての結果を取得するには、get_result() メソッドを利用できます。このメソッドは、完全な結果セットを MySQLi_Result オブジェクトとして取得します。 MYSQLI_ASSOC 定数を使用した場合は、 fetch_all() メソッドを使用して、フィールド名によって関連付けられたすべての行データの配列を取得できます。

get_result() を使用したコード例:

$param = "%{$_POST['user']}%";
$stmt = $db->prepare("SELECT id, username FROM users WHERE username LIKE ?");
$stmt->bind_param("s", $param);
$stmt->execute();
$result = $stmt->get_result();
$data = $result->fetch_all(MYSQLI_ASSOC);
ログイン後にコピー

PHP 8.2 を使用したコード例execute_query():

$sql = "SELECT id, username FROM users WHERE username LIKE ?";
$result = $db->execute_query($sql, ["%{$_POST['user']}%"]);
$data = $result->fetch_all(MYSQLI_ASSOC);
ログイン後にコピー

反復フェッチ

結果を反復的にフェッチしたい場合は、 fetch() メソッドを使用できます。ただし、すべての結果をループする組み込みの方法はないため、反復を自分で処理する必要があります。

bind_result() を使用した反復フェッチのコード例:

$param = "%{$_POST['user']}%";
$stmt = $db->prepare("SELECT id, username FROM users WHERE username LIKE ?");
$stmt->bind_param("s", $param);
$stmt->execute();

$stmt->bind_result($id, $username);
while ($stmt->fetch()) {
  echo "Id: {$id}, Username: {$username}";
}
ログイン後にコピー

フェッチに関する最新情報については、必ず MySQLi ドキュメントを参照してください。結果。

以上がMySQL LIKE クエリからすべての結果を効率的にフェッチするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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