Dalam MySQL, menggunakan pengendali LIKE dalam pertanyaan selalunya boleh mengembalikan berbilang hasil. Untuk mendapatkan semula semua hasil padanan, anda perlu menggunakan kaedah pengambilan yang betul.
Untuk mengambil semua hasil daripada pertanyaan, anda boleh menggunakan kaedah get_result(). Kaedah ini mendapatkan semula set hasil lengkap sebagai objek MySQLi_Result. Anda kemudiannya boleh menggunakan kaedah fetch_all() untuk mendapatkan tatasusunan semua data baris, dikaitkan dengan nama medan jika anda telah menggunakan pemalar MYSQLI_ASSOC.
Kod Contoh Menggunakan get_result():
$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);
Contoh Kod Menggunakan PHP 8.2 execute_query():
$sql = "SELECT id, username FROM users WHERE username LIKE ?"; $result = $db->execute_query($sql, ["%{$_POST['user']}%"]); $data = $result->fetch_all(MYSQLI_ASSOC);
Jika anda lebih suka mengambil keputusan secara berulang, anda boleh menggunakan kaedah fetch(). Walau bagaimanapun, anda perlu mengendalikan lelaran itu sendiri, kerana tiada cara terbina dalam untuk menggelungkan semua hasil.
Kod Contoh untuk Pengambilan Berulang dengan bind_result():
$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}"; }
Ingat untuk sentiasa merujuk kepada dokumentasi MySQLi untuk mendapatkan maklumat terkini tentang pengambilan hasil.
Atas ialah kandungan terperinci Bagaimana untuk Cekap Mengambil Semua Hasil daripada MySQL LIKE Query?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!