Rumah > pembangunan bahagian belakang > tutorial php > Mengapa My MySQLi `bind_param()` Fungsi Melemparkan Ralat 'Panggilan kepada Fungsi Ahli pada Bukan Objek'?

Mengapa My MySQLi `bind_param()` Fungsi Melemparkan Ralat 'Panggilan kepada Fungsi Ahli pada Bukan Objek'?

Susan Sarandon
Lepaskan: 2024-12-09 10:06:12
asal
769 orang telah melayarinya

Why is My MySQLi `bind_param()` Function Throwing a

Kemas Kini Mysqli Melempar Panggilan ke Fungsi Ahli bind_param() Ralat

Masalah:

MySQLi sedang melontarkan "Panggilan kepada fungsi ahli bind_param() pada ralat bukan objek" semasa cuba mengemas kini lajur dalam jadual menggunakan kaedah bind_param().

Punca:

Kaedah bind_param() hanya boleh dipanggil pada objek mysqli_stmt yang sah. Ralat berlaku kerana objek mysqli_stmt tidak dibuat dengan betul.

Penyelesaian:

Untuk menyelesaikan ralat ini:

  1. Semak Pertanyaan SQL: Sahkan bahawa pertanyaan SQL dalam kaedah prepare() adalah secara sintaksis betul.
  2. Balut Panggilan dalam try/catch: Bungkus panggilan prepare() dalam blok try/catch untuk mengendalikan sebarang pengecualian.
  3. Semak Ralat : Selepas melaksanakan panggilan prepare(), gunakan $mysqli->error untuk menyemak sebarang ralat mesej.
  4. Gunakan PDO: Pertimbangkan untuk menggunakan PDO (Objek Data PHP) dan bukannya MySQLi. PDO menyediakan antara muka yang lebih berorientasikan objek dan memudahkan operasi pangkalan data.

Contoh dengan PDO:

<?php
try {
  // Create PDO connection
  $pdo = new PDO('mysql:host=localhost;dbname=database', 'username', 'password');

  // Prepare update statement
  $stmt = $pdo->prepare("UPDATE questionnaire SET $key = ? WHERE id = ?");

  // Bind parameters
  $stmt->bindParam(1, $value, PDO::PARAM_STR); // Set the value parameter
  $stmt->bindParam(2, $rowid, PDO::PARAM_INT); // Set the rowID parameter

  // Execute update
  $stmt->execute();
} catch (PDOException $e) {
  trigger_error($e->getMessage(), E_USER_ERROR);
}
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa My MySQLi `bind_param()` Fungsi Melemparkan Ralat 'Panggilan kepada Fungsi Ahli pada Bukan Objek'?. 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