首页 >数据库 >mysql教程 >为什么使用 mysqli 准备语句时会出现'在非对象上调用成员函数execute()”?

为什么使用 mysqli 准备语句时会出现'在非对象上调用成员函数execute()”?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-15 01:30:11266浏览

Why Am I Getting

了解 Mysqli 准备语句

准备语句是防止 SQL 注入漏洞的关键实践。然而,使用 mysqli 准备好的语句时遇到的一个常见错误是收到错误“调用非对象上的成员函数execute()。”

要解决此问题并有效地使用 mysqli 准备好的语句,您'需要了解以下内容:

  1. 参数绑定: 准备好语句后,必须将参数绑定到占位符(?) 在 SQL 查询中。这是使用bind_param()方法完成的。
  2. 执行:绑定参数后,您可以使用execute()方法执行准备好的语句。

下面是一个例子来说明完整的过程:

<?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();

?>

强烈建议使用 mysqli 来准备语句因为这是在 PHP 中防止 SQL 注入的推荐方法。上面的例子不仅涵盖了连接、插入和选择,还提供了错误处理。

以上是为什么使用 mysqli 准备语句时会出现'在非对象上调用成员函数execute()”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn