MySQLi dan Keputusan Pertanyaan Berbilang LIKE: Panduan Komprehensif
Menggunakan pengendali LIKE
MySQLi sering menimbulkan cabaran apabila mendapatkan semula berbilang baris yang sepadan. Panduan ini menunjukkan teknik yang betul untuk mengelakkan isu sedemikian.
Kod Dioptimumkan untuk Pendapatan Berbilang Baris:
Coretan kod berikut dengan cekap mengambil semula semua rekod yang sepadan daripada jadual users
anda dan menyimpannya dalam tatasusunan $data
:
$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);
Kunci di sini ialah menggunakan get_result()
. Kaedah ini mengembalikan objek hasil MySQLi, membolehkan akses lancar dan pemprosesan keseluruhan set hasil.
Pendekatan Moden (PHP 8.2 dan ke atas):
Untuk PHP 8.2 dan versi yang lebih baru, kaedah yang lebih ringkas wujud:
$sql = "SELECT id, username FROM users WHERE username LIKE ?"; $result = $db->execute_query($sql, ["%" . $_POST['user'] . "%"]); $data = $result->fetch_all(MYSQLI_ASSOC);
Ini memanfaatkan kaedah execute_query()
, memudahkan proses dengan ketara.
Kaedah Ambil dan bind_result Tradisional:
Walaupun kurang cekap, pendekatan tradisional menggunakan fetch()
dan bind_result()
kekal sebagai pilihan:
$stmt->bind_result($id, $username); while ($stmt->fetch()) { echo "Id: {$id}, Username: {$username}"; }
Perhatikan bahawa ini memerlukan gelung while
untuk berulang melalui setiap baris secara individu.
Sumber Penting:
Untuk maklumat terperinci dan penerokaan lanjut, rujuk sumber ini:
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Berbilang Keputusan Pertanyaan Suka Menggunakan MySQLi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!