您好,我想将图片上传到phpmyadmin并将其存储到用户的loggen中,但是无法管理。当我成功上传图片时,它会转到第一个用户。想返回表的某些行,但要返回登录用户的行!这是代码!谢谢
include('functions.php');
$upload_dir = 'images/';
if(isset($_FILES['image'])){
$errors= array();
$file_name = $_FILES['image']['name'];
$file_size =$_FILES['image']['size'];
$file_tmp =$_FILES['image']['tmp_name'];
$file_type=$_FILES['image']['type'];
$file_ext=strtolower(end(explode('.',$_FILES['image']['name'])));
echo $file_name;
echo '<br>';
echo $file_size;
echo '<br>';
echo $file_tmp;
echo '<br>';
echo $file_type;
echo '<br>';
echo $file_ext;
echo '<br>';
$expensions= array("jpeg","jpg","png");
if(in_array($file_ext,$expensions)=== false){
$errors[]="Μόνο JPEG ή PNG file.";
}
if($file_size > 2097152){
$errors[]='File size must be excately 2 MB';
}
if(empty($errors)==true){
$path = $upload_dir.$file_name;
echo $file_tmp.' >> '.$path;
echo '<br>';
//check the folder status _START
if (!is_dir($upload_dir) || !is_writable($upload_dir)) {
echo 'Upload directory('.$upload_dir.') is not writable, or does not exist.';
}
//_END
if(move_uploaded_file($file_tmp, $upload_dir.$file_name)===TRUE) {
$logged_in_user_id = mysql_insert_id($db);
$sql ="UPDATE users SET profile_image='$path' WHERE id='$id'";
echo $sql;
echo '<br>';
$result = mysqli_query($db, $sql);
echo "Success";
}
}else{
print_r($errors);
}
}
答案 0 :(得分:1)
问题在于如何获取插入内容的用户ID:
$logged_in_user_id = mysql_insert_id($db)
mysql_insert_id($db)
将获取您最后一个生成自动增量的插入的ID。如果您在插入后关闭连接,我认为它不会按预期工作。如果您的插入内容使用其他脚本,请使用会话或$_GET
或$_POST
来传输您的用户ID。
原因还可能是软件包之间不兼容:
您正在使用mysqli
写入db。但使用mysql
包检索最后一个ID。 mysqli
也具有执行此操作的方法:mysqli_insert_id()
您还可以将用户ID放入变量$logged_in_user_id
中,但是在查询中,您正在使用变量$id
...