Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Membetulkan 'Panggil ke fungsi ahli bind_param() pada bukan objek' dan 'mysqli_fetch_array(): Argumen #1 mestilah jenis mysqli_result' Ralat dalam MySQLi?

Bagaimana untuk Membetulkan 'Panggil ke fungsi ahli bind_param() pada bukan objek' dan 'mysqli_fetch_array(): Argumen #1 mestilah jenis mysqli_result' Ralat dalam MySQLi?

Linda Hamilton
Linda Hamiltonasal
2024-12-21 15:04:14370semak imbas

How to Fix

Penyebaran Ralat MySQL: Menyelesaikan Isu mysqli_fetch_array() dan Bind_param()

Masalahnya:

Ralat seperti "Panggil ke fungsi ahli bind_param() pada bukan objek" dan "mysqli_fetch_array(): Argumen #1 mestilah jenis mysqli_result" boleh timbul apabila menggunakan MySQLi dalam persekitaran tertentu. Isu ini biasanya berpunca daripada kekurangan konfigurasi untuk pelaporan ralat MySQL dalam PHP.

Cara Menyelesaikan:

1. Dayakan Pelaporan Ralat MySQL

Mulakan dengan mendayakan pelaporan ralat MySQL dalam PHP dengan menambah baris berikut sebelum mewujudkan sambungan MySQLi:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

Konfigurasi ini akan memastikan bahawa sebarang ralat MySQL adalah disebarkan sebagai pengecualian PHP, menjadikannya kelihatan dan boleh diambil tindakan.

2. Gunakan Penyata Disediakan

Gantikan sebarang pembolehubah PHP eksplisit dalam pertanyaan SQL dengan tanda soal dan laksanakan pertanyaan menggunakan pernyataan yang disediakan. Pendekatan ini membantu mengelakkan ralat sintaks dan kelemahan suntikan.

// Example using MySQLi prepared statements

$mysqli = new mysqli(...) or throw new Exception('Could not connect to DB');
$query = 'SELECT id, description FROM tbl_page_answer_category WHERE cur_own_id = ?';
$stmt = $mysqli->prepare($query);
$stmt->bind_param('i', $cur_id);
$stmt->execute();
$stmt->bind_result($uid, $desc);

Petua Tambahan

  • Pastikan output ralat didayakan, sama ada pada skrin untuk pembangunan pelayan atau melalui log ralat untuk pelayan langsung.
  • Periksa mesej ralat dengan teliti dan kenal pasti yang sebenar isu.
  • Percayai mesej ralat dan anggap bahawa ralat yang dilaporkan adalah tulen.
  • Laksanakan teknik penyahpepijatan asas untuk mengesahkan pelaksanaan kod dan menyemak integriti data input.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan 'Panggil ke fungsi ahli bind_param() pada bukan objek' dan 'mysqli_fetch_array(): Argumen #1 mestilah jenis mysqli_result' Ralat dalam MySQLi?. 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