在 PHP 中调用成员函数 exec() 中的非对象错误


Call to a member function exec() on a non-object error in PHP

function add_member($idmembers, $firstname, $lastname,  $email, $phone, $level, $password) {
global $db;
$query = "INSERT INTO members
             (idmembers,  first, last, email, phone, level, password)
          VALUES
                ($idmembers,  '$firstname', '$lastname', '$email', '$phone', '$level', '$password')";
var_dump($query);
$db->exec($query);
}

这段代码给了我这个错误和来自var转储的信息:

字符串(224( "插入成员(ID成员,第一个,最后一个,电子邮件,电话,级别,密码(值(,'Gina','Hill','hill@me.com','7778889898','m','803591803e3d6e646cd3ee4a35fee6dd'(" 致命错误:在第 26 行的 J:''XAMPP''htdocs''WEBSITE''register.php 中调用 null 上的成员函数 exec((

我已经检查了将查询添加到数据库以确保查询正常工作并且工作正常。

我怀疑$db要么不是对象(如果它实际上不是 NULL(,要么$db没有一个名为 exec 的函数。

建议您验证与数据库的连接是否成功,并验证$db是否为连接对象。验证 exec 是否为对象的有效函数。

此外,您的代码似乎容易受到 SQL 注入的攻击。 (我们没有看到传递给函数的参数已被"转义"以安全地包含在 SQL 文本中。我们更喜欢看到带有绑定占位符预处理语句