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

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

Patricia Arquette
Patricia Arquetteasal
2024-12-25 09:22:13188semak imbas

`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);

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();

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:
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