未捕获的错误:调用数组上的成员函数

时间:2019-01-01 06:23:38

标签: php pdo

我正在尝试从我从GET方法接收的ID中获取数据。我还从GET方法接收了两个参数,但是,如果我运行代码,则会引发错误。

  

未捕获的错误:在数组上调用成员函数getProfileById()

这是我的代码:

<?php 
require '../config/init.php';
require 'inc/header.php';

require CLASS_PATH.'profile.php';
$profile = new Profile();


      if(isset($_GET['id'], $_GET['act']) && !empty($_GET['id']) && !empty($_GET['act'])){
      $id = (int)$_GET['id'];
      $action = $_GET['act'];


      if($action != substr(md5("edit_profile-".$id.$session->getSessionByKey('session_token')), 3, 15)){
          $_SESSION['error'] = "Token mismatch.";
          @header('location: profile');
          exit;
      }


      $profile_info = $profile->getProfileById($id);

这是我在Profile类中的代码:

class Profile extends Database
{
    public function __construct(){
        Database::__construct();
        $this->table('profile');
    }
        public function getProfileById($id){
        $args = array(
            'where' => array(
                'id' => $id
            ),
        );
        return $this->select($args);
    }
}

2 个答案:

答案 0 :(得分:0)

您没有将值传递给函数,只是传递变量并更改行:

 $profile_info = $profile->getProfileById();

 $id = (int)$_GET['id'];
 $profile_info = $profile->getProfileById($id);
  

将$ id变量传递到函数中,然后不显示错误

答案 1 :(得分:0)

1)您必须在函数中传递$ id参数。

  $profile_info = $profile->getProfileById($id);

也可以这样定义参数。

public function getProfileById($id = ""){
    Your code here
}