ホームページ > データベース > mysql チュートリアル > mysqliを使用してLIKEクエリで複数の行を取得するにはどうすればよいですか?

mysqliを使用してLIKEクエリで複数の行を取得するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-20 06:21:10
オリジナル
988 人が閲覧しました

How to Retrieve Multiple Rows with a LIKE Query Using mysqli?

MySQLi LIKE クエリ: 複数の行の取得

提供されたコードは bind_resultfetch を使用しており、単一行の取得にのみ適しています。 MySQLi を使用して LIKE クエリに一致する複数の行をフェッチするには、次の方法を検討してください。

方法 1: get_result()

を使用する

このメソッドは結果セット オブジェクトを返すため、fetch_all() を使用してすべての行を連想配列として取得できます。

<code class="language-php">$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);</code>
ログイン後にコピー

方法 2: execute_query() を使用する (PHP 8.2 以降)

この合理化されたアプローチでは、クエリを実行し、すべての結果を同時に取得します。

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

方法 3: 反復的 fetch()

bind_result() および fetch() アプローチを使用する場合は、ループを使用して複数の行を反復処理します。

<code class="language-php">$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}";
}</code>
ログイン後にコピー

これらの代替案は、LIKE 条件を満たすすべての行を効率的に取得します。 コーディング スタイルと PHP バージョンに最も適した方法を選択してください。

以上がmysqliを使用してLIKEクエリで複数の行を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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