在 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中文网其他相关文章!