作者:正好忍心_702 | 来源:互联网 | 2022-12-06 17:22
我正在为我的网站添加一个视图计数器.在代码中,我检查是否有一个带有帖子ID的IP.
例如,当post id为26,并且我的IP表中没有ID为26的IP时,它应该返回0,但它返回1.
$userIp = $_SERVER['REMOTE_ADDR'];
$checkIp = $db->prepare("SELECT user_ip FROM user_ip WHERE word_id = '$idToShow'");
$checkIp->execute();
//This happens
if (count($checkIp) > 0) {
echo count($checkIp);
echo " ". $idToShow;
}
//instead of this
else {
$insertIP = $db->prepare("INSERT INTO user_ip (user_ip, word_id) values('$userIp', '$idToShow')");
$insertIP->execute();
$updateView = $db->prepare("UPDATE words set views = views + 1 WHERE id = '$idToShow'");
$updateView->execute();
}
小智..
5
假设您正在使用PDO
在这里,您使用预准备语句来查询数据库,但是您没有获取数据库返回的结果
使用
$result = $checkIp->setFetchMode(PDO::FETCH_ASSOC);
if(count($result) > 0){
.............
}
else{
..........
}
你可以使用更简单
$checkIp->rowCount()
这将返回您的查询所影响的行数
1> 小智..:
假设您正在使用PDO
在这里,您使用预准备语句来查询数据库,但是您没有获取数据库返回的结果
使用
$result = $checkIp->setFetchMode(PDO::FETCH_ASSOC);
if(count($result) > 0){
.............
}
else{
..........
}
你可以使用更简单
$checkIp->rowCount()
这将返回您的查询所影响的行数