一尘不染

简单的mysql查询以检查行是否存在

sql

我想向用户显示他是否喜欢图像。为此,我正在创建php代码

$userid=$_COOKIE['userid'];
$sql = "SELECT * FROM likes WHERE `user_id`='{$userid}'"; 
$query = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($query);
if($row){
echo "unlike";
}
else{
echo "like";
}

我无法对“标签”,“份额”,“评论”,“收藏夹”等事物执行此操作…许多没有比这更简单的了吗?喜欢说$row_check=mysqli_check_exist($table,$column_name,$userid);


阅读 215

收藏
2021-03-10

共1个答案

一尘不染

确实有很多方法可以做到这一点,但是如果您打算使用更多的信息,那么用户是否喜欢使用select *是一个坏主意。原因是您要数据库返回该表中每一列的值。

假设它是一个小型数据库,可能不是问题,但是随着数据库变大,您将在数据库上施加更多的负载,那么您需要尝试并仅选择所需和打算使用的列。好的,在这种情况下,用户ID可能已被索引并且只有一行,但是如果您习惯在这里进行操作,则也可以在其他位置进行操作。

试试这个吧。

$userid=$_COOKIE['userid'];
$sql = "SELECT count(user_id) as total FROM likes WHERE `user_id`='{$userid}'"; 
$query = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($query);

if( $row ['total'] > 0){
    echo "unlike";
}
else{
    echo "like";
}

这样我们就可以得到总数。简洁大方

2021-03-10