您好如何检查用户是否上传了个人资料图片...我已经尝试过此代码,但仅显示默认图片,而不显示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 ;
}
答案 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
}