请各位朋友帮助我。我找不到出错的地方。我需要更新的所有变量到目前为止都很好,但实际的更新语句返回错误
“未捕获错误:在null”上调用成员函数prepare()
下面是我的一小段PHP代码:
$name_image=basename($_FILES[$idx]["name"]["$key"]);
$time = date("Y-m-d H:i:s");
$email_insert = $_SESSION['email'];
$sql_upl ="UPDATE forepost_users SET profile_picture ='$name_image',lastmodified ='$time' WHERE email_address=?";
$SQL_statement_upl= $this->conn->prepare($sql_upl);
$SQL_statement_upl->bindParam(1,$email_insert);
$SQL_statement_upl->execute();
答案 0 :(得分:0)
至少有两个问题。
$conn
未初始化,这就是您收到此错误的原因,因为$conn
为空且您正在尝试调用null对象的成员函数。 如果您需要帮助解决问题,请提供$conn
初始化代码。
SET profile_picture ='$name_image',lastmodified ='$time'
UPDATE
语句的这一部分不会将$name_image
和$time
的值插入到SQL语句中。请记住,这是一个“预准备语句”,因此您将创建一个将多次执行的SQL模板。每次执行时,您都会通过绑定参数将值传递给SQL语句。
所以将准备好的陈述改为:
"UPDATE forepost_users SET profile_picture = ?, lastmodified = ? WHERE email_address = ?"
然后在执行前绑定每个参数:
$SQL_statement_upl->bindParam(1,$name_image);
$SQL_statement_upl->bindParam(2,$time);
$SQL_statement_upl->bindParam(3,$_email_insert);