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
981 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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan