Dalam menggunakan pernyataan yang disediakan dengan mysqli, adalah penting untuk mematuhi garis panduan khusus untuk memastikan kefungsian yang betul.
Dalam kod yang disediakan, kod ralat:
Fatal error: Call to a member function execute() on a non-object in ...
mencadangkan bahawa pernyataan yang disediakan tidak terikat dengan betul kepada pembolehubah sebelum pelaksanaan. Untuk menyelesaikannya:
// Bind parameters to variables $name = 'one'; $age = 1; $stmt->bind_param('si', $name, $age);
Mysqli ialah pilihan yang sesuai untuk menggunakan pernyataan yang disediakan dalam PHP. Ia adalah antara muka pangkalan data yang mantap dan didokumentasikan dengan baik.
<?php // Establish database connection $mysqli = new mysqli('localhost', 'root', 'root', 'test'); // Prepare statement $stmt = $mysqli->prepare('INSERT INTO users (name, age) VALUES (?, ?)'); // Bind variables $name = 'one'; $age = 2; $stmt->bind_param('si', $name, $age); // Insert data with prepared statement $stmt->execute(); // Check for errors if ($mysqli->error) { echo 'Error: ' . $mysqli->error; } else { // Data inserted successfully } // Prepare select statement $stmt = $mysqli->prepare('SELECT * FROM users WHERE name = ?'); // Bind variable $name = 'one'; $stmt->bind_param('s', $name); // Execute select query $stmt->execute(); // Fetch results $result = $stmt->get_result(); while ($row = $result->fetch_assoc()) { echo $row['id'] . ' - ' . $row['name'] . ' - ' . $row['age'] . '<br>'; } // Close statement and connection $stmt->close(); $mysqli->close(); ?>
Contoh komprehensif ini menunjukkan keseluruhan proses daripada mewujudkan sambungan kepada memasukkan dan memilih data dengan pernyataan yang disediakan, termasuk pengendalian ralat.
Atas ialah kandungan terperinci Mengapa Pernyataan Disediakan MySQLi Saya Melemparkan Ralat 'Panggilan ke fungsi ahli melaksanakan() pada bukan objek'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!