Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Cekap Mendapatkan Semua Keputusan daripada MySQLi LIKE Query dengan Pelbagai Padanan?

Bagaimana untuk Cekap Mendapatkan Semua Keputusan daripada MySQLi LIKE Query dengan Pelbagai Padanan?

Linda Hamilton
Lepaskan: 2025-01-20 06:08:08
asal
965 orang telah melayarinya

How to Efficiently Retrieve All Results from a MySQLi LIKE Query with Multiple Matches?

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan