在 mysqli 中使用預備語句時,遵守特定準則以確保正常功能非常重要。
在提供的程式碼中,error:
Fatal error: Call to a member function execute() on a non-object in ...
表示準備好的語句在執行前沒有正確綁定到變數。要解決此問題:
// Bind parameters to variables $name = 'one'; $age = 1; $stmt->bind_param('si', $name, $age);
Mysqli 是 PHP 中使用準備語句的適當選擇。它是一個已建立且文檔齊全的資料庫介面。
<?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(); ?>
這個綜合範例示範了從建立連接到使用準備好的語句插入和選擇資料的整個過程,包括錯誤處理。
以上是為什麼我的 MySQLi 準備語句會拋出「在非物件上呼叫成員函數execute()」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!