Rumah > pangkalan data > tutorial mysql > `mysqli` Penyata Disediakan: `bind_result()` atau `get_result()`?

`mysqli` Penyata Disediakan: `bind_result()` atau `get_result()`?

Patricia Arquette
Lepaskan: 2024-12-25 09:22:13
asal
319 orang telah melayarinya

`mysqli` Prepared Statements: `bind_result()` or `get_result()`?

Bind_result vs. Get_result: Mana yang Perlu Digunakan?

Pengenalan

Apabila bekerja dengan pernyataan yang disediakan dalam mysqli, anda mempunyai dua pilihan untuk mengambil keputusan : bind_result() dan get_result(). Memahami perbezaan antara kaedah ini adalah penting untuk mengoptimumkan operasi pangkalan data anda.

Bind_result()

bind_result() mengikat pembolehubah tertentu pada lajur dalam hasil pertanyaan, membolehkan anda menetapkannya terus kepada pembolehubah skalar. Ia biasanya digunakan apabila anda memerlukan lajur tertentu daripada pertanyaan.

Contoh:

$query = 'SELECT id, first_name, last_name FROM table WHERE id = ?';
$id = 5;

$stmt = $mysqli->prepare($query);
$stmt->bind_param('i', $id);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($id, $first_name, $last_name);
Salin selepas log masuk

Kebaikan:

  • Berfungsi dengan versi PHP yang lapuk.
  • Mengembalikan pembolehubah berasingan untuk setiap lajur.

Keburukan:

  • Memerlukan anda untuk menyenaraikan semua pembolehubah secara manual untuk diikat.
  • Memerlukan kod tambahan untuk mengembalikan baris sebagai tatasusunan.
  • Mesti dikemas kini apabila struktur jadual perubahan.

Get_result()

get_result() mendapatkan semula keseluruhan hasil sebagai tatasusunan bersekutu atau terhitung, diisi secara automatik dengan data daripada baris yang dikembalikan. Ia berguna apabila anda perlu bekerja dengan keseluruhan baris sebagai tatasusunan.

Contoh:

$query = 'SELECT * FROM table WHERE id = ?';
$id = 5;

$stmt = $mysqli->prepare($query);
$stmt->bind_param('i', $id);
$stmt->execute();
$result = $stmt->get_result();
Salin selepas log masuk

Kebaikan:

  • Mengembalikan tatasusunan atau objek bersekutu/dihitung secara automatik.
  • Menyokong fetch_all() untuk mendapatkan semula semua baris yang dikembalikan sekali gus.

Keburukan:

  • Memerlukan MySQL asli pemandu (mysqlnd).

Had dan Perbezaan

Kedua-dua kaedah mempunyai had:

  • bind_result() memerlukan penyenaraian lajur yang jelas, menjadikannya mudah ralat dan tidak fleksibel.
  • get_result() tidak menyokong versi PHP yang sudah lapuk dan memerlukan pemacu asli MySQL.

Memilih Kaedah Betul

Kaedah terbaik bergantung pada keperluan khusus anda:

  • Jika anda memerlukan pembolehubah berasingan untuk lajur tertentu dan berfungsi dengan versi PHP yang lebih lama, gunakan bind_result().
  • Jika anda lebih suka bekerja dengan baris sebagai tatasusunan, ingin mendapatkan semua baris sekali gus dan mempunyai pemacu asli MySQL, gunakan get_result().

Atas ialah kandungan terperinci `mysqli` Penyata Disediakan: `bind_result()` atau `get_result()`?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan