doukan4795 2019-05-04 11:02
浏览 126

使用php预处理语句将图像(blob)插入到mysql数据库中

I need to insert a image into mysql database using prepared statments... everything else is inserting besides image

$name = mysqli_real_escape_string($conn, $_POST['name']);
    $category = mysqli_real_escape_string($conn, $_POST['category']);
    $privacy = mysqli_real_escape_string($conn, $_POST['privacy']);
    $maxmembers = mysqli_real_escape_string($conn, $_POST['maxmembers']);
    $description = mysqli_real_escape_string($conn, $_POST['description']);
    $file = $_FILES['avatar']['tmp_name'];
    $image = addslashes(file_get_contents($_FILES['avatar']['tmp_name']));
    $image_name =addslashes($_FILES['avatar']['tmp_name']);
    $image_size = getimagesize($_FILES['avatar']['tmp_name']);



$sql = "INSERT INTO hjuma_groups (name, description, category, privacy, maxmembers, owner, avatarname, avatar) VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
            $stmt = mysqli_stmt_init($conn);
            if (!mysqli_stmt_prepare($stmt, $sql)) {
              echo "SQL error";
            }else {
              mysqli_stmt_bind_param($stmt,"sssssssb", $name,$description,$category, $privacy,$maxmembers, $owner, $image_name, $image);
              mysqli_stmt_execute($stmt);
            }
  • 写回答

1条回答 默认 最新

  • doumingo04696 2019-05-04 11:09
    关注

    I think the piece of the puzzle you were missing is base64_encode on the image data, sa below:

    $name =             $_POST['name']);
    $category =         $_POST['category'];
    $privacy =          $_POST['privacy'];
    $maxmembers =       $_POST['maxmembers']);
    $description =      $_POST['description']);
    $name =             $_FILES['avatar']['name'];
    $image_name =       $_FILES['avatar']['tmp_name'];
    $image =            base64_encode( file_get_contents( $image_name ) );
    $image_size =       getimagesize( $image_name );
    
    
    
    $sql = "insert into `hjuma_groups` 
            ( `name`, `description`, `category`, `privacy`, `maxmembers`, `owner`, `avatarname`, `avatar`) 
            values 
            (?, ?, ?, ?, ?, ?, ?, ?)";
    $stmt = mysqli_stmt_init($conn);
    
    if( !mysqli_stmt_prepare( $stmt, $sql ) ) {
        echo "SQL error";
    }else {
        mysqli_stmt_bind_param( $stmt, "sssssssb", $name, $description, $category, $privacy, $maxmembers, $owner, $image_name, $image );
        mysqli_stmt_execute($stmt);
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制