Apabila bekerja dengan pertanyaan MySQL dalam PHP, pembangun mempunyai pilihan untuk mendapatkan semula data menggunakan dua kaedah: bind_result() dan get_result(). Walaupun kedua-duanya mencapai matlamat yang sama untuk mendapatkan data, mereka mempunyai ciri dan kelebihan yang berbeza. Artikel ini bertujuan untuk memberikan perbandingan berasaskan contoh kaedah ini, menyerlahkan kebaikan dan keburukan, had dan perbezaannya.
Kaedah bind_result() membenarkan pembangun mengikat pembolehubah kepada lajur set hasil. Ini berguna apabila bilangan dan susunan lajur dalam keputusan diketahui terlebih dahulu.
Contoh:
$query1 = 'SELECT id, first_name, last_name, username FROM `table` WHERE id = ?'; $id = 5; $stmt = $mysqli->prepare($query1); $stmt->bind_param('i', $id); $stmt->execute(); $stmt->store_result(); $stmt->bind_result($id, $first_name, $last_name, $username); while ($stmt->fetch()) { // Process the data }
Dalam contoh ini, kaedah bind_result() mengikat pembolehubah $id, $first_name, $last_name dan $username kepada lajur masing-masing dalam set hasil. Apabila baris diambil, nilai daripada lajur ini ditetapkan secara automatik kepada pembolehubah terikat.
Kaedah get_result() mendapatkan semula keseluruhan keputusan yang ditetapkan sebagai objek, membenarkan pembangun untuk bekerja dengan data sebagai tatasusunan tatasusunan bersekutu atau objek.
Contoh:
$query2 = 'SELECT * FROM `table` WHERE id = ?'; $id = 5; $stmt = $mysqli->prepare($query2); $stmt->bind_param('i', $id); $stmt->execute(); $result = $stmt->get_result(); while ($row = $result->fetch_assoc()) { // Process the data }
Dalam contoh ini, kaedah get_result() mengembalikan objek yang mengandungi set hasil. Kaedah fetch_assoc() kemudiannya digunakan untuk mendapatkan semula setiap baris sebagai tatasusunan bersekutu, dengan kekunci mewakili nama lajur.
bind_result()
Kebaikan:
Keburukan:
get_result()
Kebaikan:
Keburukan:
Kedua-dua bind_result() dan get_result() mempunyai had:
Pilihan antara menggunakan bind_result() dan get_result() bergantung pada keperluan khusus permohonan. bind_result() berguna apabila bilangan dan susunan lajur dalam set hasil diketahui dan data perlu disimpan dalam pembolehubah berasingan. get_result(), sebaliknya, lebih mudah apabila berurusan dengan set hasil dinamik atau apabila data perlu diakses sebagai tatasusunan atau objek.
Atas ialah kandungan terperinci `bind_result()` vs. `get_result()` dalam MySQLi: Kaedah Mendapatkan Data Yang Mana Perlu Saya Pilih?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!