dongyi6543 2014-03-29 17:09
浏览 47
已采纳

使用php将图像上传到数据库[关闭]

I want to upload images to a database where the image will only echo out if it is by the user but it doesn't work and it doesn't give me any errors

<?php

session_start();

    $pic = $_FILES['pic'];
    $submit = $_POST['post'];
    $user = $_SESSION['username'];

    if($submit){
        $connect = mysql_connect("localhost", "root", "123");
        if($connect){
            $database = mysql_select_db("phplogin");
            if($database){
                mysql_query("INSERT INTO images(image, user) VALUES ($pic, $user)");
                $query = mysql_query("SELECT * FROM images WHERE user = '$user'");
                $data2 = mysql_fetch_array($query);
                header("Content-type: image/jpeg");
                echo $data2['image'];
            } else {
                die("Couldn't connect to the database please try again, if you fail to connect again please contact me");
            }
        } else {
            die("Couldn't connect to the database please try again, if you fail to connect again please contact me");
        }
    }



?>
  • 写回答

2条回答 默认 最新

  • doubi1910 2014-03-29 17:20
    关注

    You need to get the file's contents first then insert them into the database. Also your query does not close the variables off in single quotes.

    //Need to get contents then escape any characters that match
    //mysql query elements like quotes etc.
    $contents = mysql_real_escape_string( file_get_contents($_FILES['pic']['tmp_name']) );
    $result = mysql_query("INSERT INTO images(image, user) VALUES ('$contents', '$user')");
    if($result === FALSE){
       //insert failed echo error and die
       echo mysql_error();
       die;
    }
    $query = mysql_query("SELECT * FROM images WHERE user = '$user'");
    $data2 = mysql_fetch_array($query);
    header("Content-type: image/jpeg");
    echo $data2['image'];
    

    Note that you should be using mysqli and prepared statements instead. mysql_* and the mysql class are depreciated, and using prepared statements are better for preventing injection attacks.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c