Rumah >pangkalan data >tutorial mysql >Mengapa Saya Mendapat 'Panggil ke fungsi ahli execute() pada bukan objek' dengan Penyata Disediakan mysqli?

Mengapa Saya Mendapat 'Panggil ke fungsi ahli execute() pada bukan objek' dengan Penyata Disediakan mysqli?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-15 01:30:11270semak imbas

Why Am I Getting

Memahami Penyata Disediakan Mysqli

Menyediakan penyataan ialah amalan penting untuk mencegah kelemahan suntikan SQL. Walau bagaimanapun, ralat biasa yang dihadapi semasa menggunakan pernyataan yang disediakan mysqli menerima ralat "Panggil ke fungsi ahli laksanakan() pada bukan objek."

Untuk menyelesaikan isu ini dan menggunakan pernyataan yang disediakan mysqli dengan berkesan, anda' Anda perlu memahami perkara berikut:

  1. Pengikatan Parameter: Selepas menyediakan pernyataan, anda mesti mengikat parameter kepada ruang letak (?) dalam pertanyaan SQL. Ini dilakukan menggunakan kaedah bind_param().
  2. Pelaksanaan: Setelah parameter terikat, anda boleh melaksanakan pernyataan yang disediakan menggunakan kaedah execute().

Berikut ialah contoh untuk menggambarkan proses lengkap:

<?php

// Connect to MySQL
$mysqli = new mysqli("localhost", "root", "root", "test");

// Prepare statement
$stmt = $mysqli->prepare("INSERT INTO users (name, age) VALUES (?, ?)");

// Bind parameters
$name = 'one';
$age = 1;
$stmt->bind_param('si', $name, $age);

// Execute statement
$stmt->execute();

// Insert another row with different values
$name = 'two';
$age = 2;
$stmt->bind_param('si', $name, $age);
$stmt->execute();

?>

Menggunakan mysqli untuk pernyataan yang disediakan sangat disyorkan kerana ia adalah cara yang disyorkan untuk melindungi daripada suntikan SQL dalam PHP. Contoh di atas merangkumi bukan sahaja sambungan, sisipan dan pemilihan, tetapi juga menyediakan pengendalian ralat.

Atas ialah kandungan terperinci Mengapa Saya Mendapat 'Panggil ke fungsi ahli execute() pada bukan objek' dengan Penyata Disediakan 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