php检查用户是否上传了个人资料图片

时间:2019-07-21 16:44:20

标签: php mysql

您好如何检查用户是否上传了个人资料图片...我已经尝试过此代码,但仅显示默认图片,而不显示else部分。请帮助...这是我的代码

$check_pic = mysqli_query($conn,"SELECT image FROM users WHERE id='$id'");
$get_pic_row = mysqli_fetch_assoc($check_pic);
$profile_pic_db = $get_pic_row['image'];
$pro_num = mysqli_num_rows($profile_pic_db);
if ($pro_num == 0) {
    $profile_pic = "http://localhost/Ramdhenu/images/default_propic.png";
} else {
    $profile_pic = "http://localhost/Ramdhenu/userdata/Author_images/".$profile_pic_db ;
}

2 个答案:

答案 0 :(得分:3)

您需要检查列的值,而不是是否返回任何行。您还应该使用准备好的语句。

$stmt = $conn->prepare("SELECT image FROM users WHERE id=?");
$stmt->bind_param("s", $id);
$stmt->execute();
$stmt->bind_result($image);
if ($stmt->fetch()) {
    if (empty($image)) {
        $profile_pic = "/Ramdhenu/images/default_propic.png";
    } else {
        $profile_pic = "/Ramdhenu/userdata/Author_images/".$image; 
    }
} else {
    // No user by that ID
}
$stmt->close();

答案 1 :(得分:0)

您将始终获得$ pro_num!= 0,如果要对列成像,则需要检查默认值, 可以说默认值为NULL

     $check_pic = mysqli_query($conn,"SELECT image FROM users WHERE id='$id'");
        $get_pic_row = mysqli_fetch_assoc($check_pic);
        $profile_pic_db = $get_pic_row['image'];
        $pro_num = mysqli_num_rows($profile_pic_db);
    if($pro_num == 1){

    if ($profile_pic_db == null) {
            $profile_pic = "http://localhost/Ramdhenu/images/default_propic.png";
        } else {
            $profile_pic = "http://localhost/Ramdhenu/userdata/Author_images/".$profile_pic_db ;
        }
    }else{
//user not found
}