图像未出现在MYSQL数据库中

时间:2017-11-23 17:40:57

标签: php html mysql database image

我的问题是,如果我尝试将我的网站上的图像发布到我的数据库中,这些图像就不会出现在那里。图像确实出现在我创建的文件夹upload / img中。我的数据库照片表称为2行图像。 id int(11)和图像MEDIUMBLOB。任何想法为什么我的图像不出现在我的MYSQL数据库上?

    <?php session_start(); ?>
<!DOCTYPE html>
<html>
<head>
  <title>Image Upload</title>
</head>
<body>
  <?php if(isset($_SESSION['err'])){ ?>
    <h2><?php echo $_SESSION['err']; ?></h2>
  <?php session_unset(); } ?>
  <form method="post" action="upload.php" enctype="multipart/form-data" >
    <input type="file" name="image" />
    <input type="submit" value="Submit" name="save">
  </form>
</body>
</html>

我的upload.php

<?php

require_once('config.php');
session_start();
if(isset($_POST['save']))
{
  $target_dir = "upload/img/";
  $filename = explode('.',$_FILES['image']['name']);
  $ext = $filename[1];
  $imgname = time().'.'.$ext;
  $target_file = $target_dir . $imgname ;
 if (move_uploaded_file($_FILES["image"]["tmp_name"], $target_file)) {
      $path=$imgname;
      $conn->query("INSERT INTO images (id, image)VALUES ('$path')");
      $_SESSION["Success"]='Image Is Upload Success...';
      header("Location:view.php"); /* Redirect browser */
      exit();
    } else {
      $_SESSION["err"]=$text;
      header("Location:index.php"); /* Redirect browser */
      exit();
    }
  }
}

?>

这是我的“图像”表的图片。

enter image description here

2 个答案:

答案 0 :(得分:1)

必须是

if (move_uploaded_file($_FILES["image"]["tmp_name"], $target_file)) {
  $path=$imgname;
  $conn->query("INSERT INTO images (image) VALUES ('$path')");
  $_SESSION["Success"]='Image Is Upload Success...';
  header("Location:view.php"); /* Redirect browser */
  exit();
} else {
  $_SESSION["err"]=$text;
  header("Location:index.php"); /* Redirect browser */
  exit();
}

因为你告诉Mysql插入id但你没有提供它的价值

答案 1 :(得分:0)

所以我想清楚为什么那些图片不会上传到我的MYSQL数据库。

  1. 像这里的一些人建议我不需要&#34; id&#34;写在我的INSERT部分。

  2. 我的table id行必须设置为primary和AUTO_INCREMENT(见下图)。

  3. enter image description here

    现在情况似乎正常。您可以将图像行类型从varchar设置为blob。