我的PHP类有问题,当用户想跟随另一个用户调用follow方法时,当用户想要停止跟随delete_follow
时,会调用:
class Follow {
protected static $table_name = "interests";
public function follow() {
global $dbh;
$sql = "INSERT INTO ".self::$table_name." (company_id,user_id,likedate) VALUES (:company_id,:user_id,NOW())";
$follow = $dbh->prepare($sql);
$follow->bindParam(':user_id',$_SESSION['user_id']);
$follow->bindParam(':company_id',$_GET['company']);
if($follow->execute() == true){
header("Location: profile.php?company=".$_GET['company']."");
exit;
} else {
header("Location: error.php");
exit;
}
}
public function delete_follow() {
global $dbh;
$sql = "DELETE FROM ".self::$table_name." WHERE company_id = :company_id AND user_id = :user_id LIMIT 1";
$delete_follow = $dbh->prepare($sql);
$delete_follow->bindParam(':user_id',$_SESSION['user_id']);
$delete_follow->bindParam(':company_id',$_GET['company']);
if($delete_follow->execute() == true) {
header("Location: profile.php?company=".$_GET['company']."");
exit;
} else {
header("Location: error.php");
exit;
}
}
}
我的问题是,当调用delete_follow方法时,它实际上调用了follow方法,我不知道发生了什么。
以下是关注按钮的代码:
if(isset($_POST['follow'])) {
$follows = new Follow();
$follows->follow();
}
if(isset($_POST['delete_follow'])) {
$follows = new Follow();
$follows->delete_follow();
}
请帮助。
答案 0 :(得分:4)
您班级的名称是Follow
。您班级中的第一个方法称为follow()
。 PHP在这方面不区分大小写,并将follow()
方法视为构造函数。因此,此声明 - $follows = new Follow()
- 实际上会调用您班级中的follow()
方法。这可能是你的问题所在。
阅读有关PHP构造函数here的更多信息。
答案 1 :(得分:0)
我认为你的表单中有错误。也许最好让一个字段follow
具有布尔值,比如yes
或no
。