我正在尝试从我从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);
}
}
答案 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
}