在 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 转储的信息:
string(224) "INSERT INTO members (idmembers, first, last, email, phone, level, password) VALUES (, 'Gina', 'Hill', 'hill@me.com', '7778889898', 'm', '803591803e3d6e646cd3ee4a35fee6dd')"
Fatal error: Call to a member function exec() on null in J:\XAMPP\htdocs\WEBSITE\register.php on line 26
我已经检查了将查询添加到数据库以确保查询正常工作并且工作正常。
我怀疑 $db
不是对象(如果它实际上不是 NULL),或者 $db
没有名为 exec
.
的函数
我建议您验证您与数据库的连接是否成功,并验证$db
是连接对象。验证 exec
是对象的有效函数。
此外,您的代码似乎容易受到 SQL 注入 的攻击。 (我们没有看到传递给函数的参数 "escaped" 可以安全地包含在 SQL 文本中。)我们更希望看到 准备好的语句 与 绑定占位符 .
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 转储的信息:
string(224) "INSERT INTO members (idmembers, first, last, email, phone, level, password) VALUES (, 'Gina', 'Hill', 'hill@me.com', '7778889898', 'm', '803591803e3d6e646cd3ee4a35fee6dd')" Fatal error: Call to a member function exec() on null in J:\XAMPP\htdocs\WEBSITE\register.php on line 26
我已经检查了将查询添加到数据库以确保查询正常工作并且工作正常。
我怀疑 $db
不是对象(如果它实际上不是 NULL),或者 $db
没有名为 exec
.
我建议您验证您与数据库的连接是否成功,并验证$db
是连接对象。验证 exec
是对象的有效函数。
此外,您的代码似乎容易受到 SQL 注入 的攻击。 (我们没有看到传递给函数的参数 "escaped" 可以安全地包含在 SQL 文本中。)我们更希望看到 准备好的语句 与 绑定占位符 .