MySQLi LIKE
クエリ: 複数の行の取得
提供されたコードは bind_result
と fetch
を使用しており、単一行の取得にのみ適しています。 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 サイトの他の関連記事を参照してください。