Mengambil semula Semua Padanan daripada MySQLi LIKE Query
Bekerja dengan MySQLi LIKE
pertanyaan dalam PHP, terutamanya apabila berbilang hasil dijangka, memerlukan pengendalian yang teliti untuk memastikan semua rekod padanan diambil semula. Berikut menunjukkan kaedah yang cekap untuk mencapai matlamat ini.
Kesilapan biasa hanya mengambil keputusan pertama. Untuk mendapatkan semula semua baris yang sepadan, gunakan teknik yang dipertingkatkan ini:
Kaedah 1: Menggunakan fetch_all()
(Disyorkan)
Kaedah ini ringkas dan cekap, terutamanya untuk PHP 8.2 dan ke atas. Ia mengambil semua hasil ke dalam tatasusunan bersekutu:
<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); // Fetches all results</code>
Untuk PHP 8.2 , fungsi execute_query
memudahkan lagi perkara ini:
<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>
Kaedah 2: Pendekatan Berulang dengan gelung bind_result()
dan while
Pendekatan ini berulang melalui setiap baris secara individu, mencetak id
dan username
:
<code class="language-php">$stmt->bind_result($id, $username); while ($stmt->fetch()) { echo "Id: {$id}, Username: {$username}<br>"; // Added <br> for better output }</code>
Kaedah ini berguna jika anda perlu memproses setiap baris secara individu, bukannya menyimpan kesemuanya dalam tatasusunan.
Kedua-dua kaedah adalah berdasarkan dokumentasi MySQLi rasmi dan menyediakan penyelesaian yang mantap untuk mengendalikan berbilang hasil daripada LIKE
pertanyaan. Kaedah fetch_all()
secara amnya diutamakan kerana kesederhanaan dan kecekapannya dalam mendapatkan semua keputusan sekaligus.
Atas ialah kandungan terperinci Bagaimana untuk Cekap Mendapatkan Semua Keputusan daripada MySQLi LIKE Query dengan Pelbagai Padanan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!