未捕获错误:在null上调用成员函数prepare()

时间:2017-04-16 08:26:53

标签: php jquery sql-server

请各位朋友帮助我。我找不到出错的地方。我需要更新的所有变量到目前为止都很好,但实际的更新语句返回错误

  

“未捕获错误:在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();

1 个答案:

答案 0 :(得分:0)

至少有两个问题。

  1. 您的$conn未初始化,这就是您收到此错误的原因,因为$conn为空且您正在尝试调用null对象的成员函数。
  2. 如果您需要帮助解决问题,请提供$conn初始化代码。

    1. 您准备好的陈述无效。
    2. 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);