我目前正在實現一個使用PHP和PDO的跟蹤系統。代碼根據插入的數據確定是否顯示按鈕「Follow」或「Unfollow」。數據庫正在更新,但出於某種原因,大於或等於運算符無法正常工作,或者我沒有正確查詢數據庫。 (不知道哪個)任何人都知道我在做什麼錯了?PHP/PDO查詢後大於等於運算符
在followon.php:
if($row['userID'] && $row['userName']){
if($row['userID']!=$user_id){
$follow_userid = $row['userID'];
$stmt = $user_follow->runQuery("SELECT id FROM following WHERE user1_id=':user_id' AND user2_id=':follow_userid'");
$stmt->execute(array(":user_id"=>$user_id,":follow_userid"=>$follow_userid));
$follow = $stmt->fetch(PDO::FETCH_ASSOC);
if(!$follow >= 1){
$stmt = $user_follow->runQuery("INSERT INTO following(user1_id, user2_id) VALUES (?, ?)");
$stmt->bindValue(1,$user_id);
$stmt->bindValue(2,$follow_userid);
$stmt->execute();
$stmt = $user_follow->runQuery("UPDATE tbl_users SET following = following + 1 WHERE userID = ?");
$stmt->bindValue(1,$user_id);
$stmt->execute();
$stmt = $user_follow->runQuery("UPDATE tbl_users SET followers = followers + 1 WHERE userID = ?");
$stmt->bindValue(1,$follow_userid);
$stmt->execute();
}
header("Location: index.php?id=".$currentID);
}
}
在followoff.php:
if($row['userID'] && $row['userName']){
if($row['userID']!=$user_id){
$unfollow_userid = $row['userID'];
$stmt = $user_unfollow->runQuery("SELECT id FROM following WHERE user1_id=':user_id' AND user2_id=':unfollow_userid'");
$stmt->execute(array(":user_id"=>$user_id,":unfollow_userid"=>$unfollow_userid));
$follow = $stmt->fetch(PDO::FETCH_ASSOC);
if($follow >= 1){
$stmt = $user_unfollow->runQuery("DELETE FROM following WHERE user1_id= ? AND user2_id= ?");
$stmt->bindValue(1,$user_id);
$stmt->bindValue(2,$unfollow_userid);
$stmt->execute();
$stmt = $user_unfollow->runQuery("UPDATE tbl_users SET following = following - 1 WHERE userID = ?");
$stmt->bindValue(1,$user_id);
$stmt->execute();
$stmt = $user_unfollow->runQuery("UPDATE tbl_users SET followers = followers - 1 WHERE userID = ?");
$stmt->bindValue(1,$unfollow_userid);
$stmt->execute();
}
header("Location: index.php?id=".$currentID);
}
}
而在index.php文件(如果出現按鈕):
if($user_id){
if($user_id!=$id){
$query2 = $user_home->runQuery("SELECT id FROM following WHERE user1_id=':user_id' AND user2_id=':id'");
$query2->execute(array(":user_id"=>$user_id,":id"=>$id));
$query2result = $query2->fetch(PDO::FETCH_ASSOC);
if($query2result >= 1){
echo "<a href='followoff.php?id=$currentID' class='btn btn-default btn-xs'>Unfollow</a>";
}
else{
echo "<a href='followon.php?id=$currentID' class='btn btn-info btn-xs'>Follow</a>";
}
}
}
'$ query2result' is __array__。它如何可以大於1?你在這裏比較什麼? –
您正在使用帶有佔位符值的準備好的語句,這很好,但記住佔位符*不應該有周圍的引號*。如果認爲有必要,那些由數據庫驅動程序添加。 – tadman