ホームページ > データベース > mysql チュートリアル > MySQLi で LIKE を使用して複数の検索結果を適切にフェッチするにはどうすればよいですか?

MySQLi で LIKE を使用して複数の検索結果を適切にフェッチするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-20 06:17:13
オリジナル
983 人が閲覧しました

How to Properly Fetch Multiple Search Results Using LIKE in MySQLi?

MySQLi の LIKE ステートメントを使用して複数の検索結果を効率的に取得します

この記事では、MySQLi を使用して LIKE クエリから複数の結果を取得する方法について説明します。

質問で提供されている元のコードは、単一行の結果を取得しようとしていますが、これは複数行が返される可能性があるシナリオには適していません。すべての結果を正しく取得するには、次を使用できます:

<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>
ログイン後にコピー

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>
ログイン後にコピー

従来の fetch および bind_result 構文を使用したい場合は、次のコードを使用できます。

<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();

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

これらの更新されたコード スニペットにより、一致するすべての行がデータベースから確実に取得され、必要に応じてデータにアクセスできるようになります。

以上がMySQLi で LIKE を使用して複数の検索結果を適切にフェッチするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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