Rumah > pembangunan bahagian belakang > tutorial php > `bind_result` lwn. `get_result` dalam MySQLi: Kaedah Penyata Disediakan Mana Yang Perlu Anda Pilih?

`bind_result` lwn. `get_result` dalam MySQLi: Kaedah Penyata Disediakan Mana Yang Perlu Anda Pilih?

Mary-Kate Olsen
Lepaskan: 2024-12-04 16:30:17
asal
885 orang telah melayarinya

`bind_result` vs. `get_result` in MySQLi: Which Prepared Statement Method Should You Choose?

bind_result vs get_result dalam Penyata Disediakan MySQL

Pernyataan yang disediakan dalam MySQLi menyediakan dua kaedah utama untuk mendapatkan semula hasil pertanyaan: bind_result dan get_result. Artikel ini membandingkan tujuan, kelebihan dan had setiap kaedah.

bind_result

Kaedah bind_result secara eksplisit mengikat pembolehubah pada lajur yang dikembalikan oleh pertanyaan. Ia memerlukan susunan pembolehubah untuk sepadan dengan struktur lajur dan biasanya digunakan apabila pertanyaan mengembalikan subset lajur tertentu.

Kebaikan:

  • Serasi dengan versi PHP yang lebih lama
  • Mengembalikan pembolehubah berasingan untuk setiap satu lajur

Keburukan:

  • Pengikatan manual setiap pembolehubah
  • Memerlukan kod tambahan untuk mengembalikan baris sebagai tatasusunan
  • Kemas kini kod diperlukan jika struktur jadual perubahan

get_result

Kaedah get_result mengembalikan objek yang mengandungi keseluruhan set hasil pertanyaan. Ia memerlukan Pemacu Asli MySQL (mysqlnd) dan menawarkan fleksibiliti yang lebih besar.

Kebaikan:

  • Mengembalikan tatasusunan atau objek bersekutu/dikira dengan data daripada baris yang dikembalikan
  • Membenarkan mengambil semua baris yang dikembalikan sekali gus menggunakan fetch_all()

Keburukan:

  • Memerlukan Pemacu Asli MySQL

Contoh: bind_result

<?php
$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()) {
    echo 'ID: ' . $id . '<br>';
    echo 'First Name: ' . $first_name . '<br>';
    echo 'Last Name: ' . $last_name . '<br>';
    echo 'Username: ' . $username . '<br><br>';
}
?>
Salin selepas log masuk

Contoh: get_result

<?php
$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()) {
    echo 'ID: ' . $row['id'] . '<br>';
    echo 'First Name: ' . $row['first_name'] . '<br>';
    echo 'Last Name: ' . $row['last_name'] . '<br>';
    echo 'Username: ' . $row['username'] . '<br><br>';
}
?>
Salin selepas log masuk

Kesimpulan

Pilihan antara bind_result dan get_result bergantung pada keperluan khusus aplikasi. bind_result menawarkan keserasian dengan versi PHP yang lebih lama dan membolehkan pengikatan pembolehubah yang tepat, manakala get_result memberikan fleksibiliti dan menghapuskan keperluan untuk pengikatan pembolehubah manual. Walau bagaimanapun, get_result memerlukan Pemacu Asli MySQL.

Atas ialah kandungan terperinci `bind_result` lwn. `get_result` dalam MySQLi: Kaedah Penyata Disediakan Mana Yang Perlu Anda Pilih?. 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