PHP的SQL上传图片登录用户

时间:2018-10-24 08:07:00

标签: php sql

您好,我想将图片上传到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);
    }
}

1 个答案:

答案 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 ...