Gunakan pernyataan LIKE MySQLi untuk mendapatkan berbilang hasil carian dengan cekap
Artikel ini meneroka cara menggunakan MySQLi untuk mendapatkan berbilang hasil daripada pertanyaan SUKA.
Kod asal yang diberikan dalam soalan cuba mendapatkan satu baris hasil carian, tetapi ini tidak sesuai untuk senario yang berbilang baris mungkin dikembalikan. Untuk mendapatkan semua hasil dengan betul anda boleh menggunakan:
<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>
Sebagai alternatif, bermula dengan PHP 8.2, anda boleh menggunakan kod yang lebih ringkas berikut:
<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>
Jika anda lebih suka sintaks fetch
dan bind_result
tradisional, anda boleh menggunakan kod berikut:
<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>
Coretan kod yang dikemas kini ini memastikan semua baris yang sepadan diambil daripada pangkalan data, membolehkan anda mengakses data seperti yang diperlukan.
Atas ialah kandungan terperinci Bagaimana Mengambil Berbilang Hasil Carian Dengan Betul Menggunakan LIKE dalam MySQLi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!