【问题标题】:how to display image from mysql database using php [duplicate]如何使用php显示来自mysql数据库的图像[重复]
【发布时间】:2012-10-28 06:09:36
【问题描述】:

可能重复:
How to display all the images stored inside a database

语法:

表格语法:

create table users(id int, idimage blob);

如何获取图片并显示?

$sql =mysql_query("SELECT idimage FROM users WHERE 1d=3");
//$resultimg = mysql_fetch_row("$sql");
while( $row = mysql_fetch_row( $sql ) ){ $IMDs[] = $row[0]; }
echo "<img src='".$IMDs[0]."'/>";

谢谢

【问题讨论】:

  • 图像是否作为文件存在,可以通过普通的 src= 链接引用?如果它们在数据库中,您的网络服务器将找不到它们。创建一个处理程序脚本,调整图像 url。
  • 匿名用户在问题中使用mysql_query 的概率:太高了。我很好奇你是从哪里学会这个可怕的习惯的,因为我怀疑 w3schools 可能参与其中。 PDO 或 mysqli 是您创建新应用程序的唯一方法,因为 serious hazards 具有旧界面。

标签: php mysql


【解决方案1】:

您是否在变量 $IMDs[0] 中有图像的完整路径。 如果不是,您必须在 src 标签中提供图像的路径

<img src="path/to/your/image" />

【讨论】:

  • 我在mysql数据库中找不到图片路径
  • 那么你的图片的路径是什么??????在 src 标签上给出路径+文件名
  • @DeepuSuresh 你的回答是完全错误的哥们。 OP 将图像本身存储在数据库中。知道了?在有人反对你之前编辑它!
【解决方案2】:

使用blob 字段。

在 MySQL 中,有一个名为 blob 的数据类型。您可以使用它来创建它。

有一个tutorial 说明如何做到这一点。

将图像插入数据库:

# If no error
if($_FILES['userfile']['error']==UPLOAD_ERR_OK)
{
    # Check if the file is uploaded via HTTP POST
    if(is_uploaded_file($_FILES['userfile']['tmp_name'])) {
        $imgData = file_get_contents($_FILES['userfile']['tmp_name']);
        mysqli_connect("localhost", "$username", "$password");
        mysqli_select_db ("$dbname");
        $sql = "INSERT INTO `users` ( `idimage` ) VALUES ('{$imgData}')";
        mysqli_query($sql);
    }
}

显示来自数据库的图像:

 <?php
      if(isset($_GET['id']) && is_numeric($_GET['id'])) {
           # Connect to DB
           $link = mysqli_connect("$hostname", "$username", "$password") or die("Could not connect: " . mysqli_error());
           mysqli_select_db("$database") or die(mysqli_error());

           # SQL Statement
           $sql = "SELECT `idimage` FROM `users` WHERE id=" . mysqli_real_escape_string($_GET['id']) . ";";
           $result = mysqli_query("$sql") or die("Invalid query: " . mysqli_error());

           # Set header
           header("Content-type: image/png");
           echo mysqli_result($result, 0);
      }
      else
           echo 'Please check the ID!';
 ?>

最好避免使用mysql_* 函数,而使用mysqli_*PDO

【讨论】:

  • @Osiris 添加了教程链接。将在几分钟内提出一些要点...... :)
  • 嗨,我没有使用插入查询来插入数据。我曾经手动输入数据。那么我如何检索图像并显示呢
  • @user1799052 如果您手动插入数据,那么我认为您只需输入图像的 URL,而不是图像本身。您必须将字段类型更改为数据库而不是 blob。
  • @user1799052 请参阅第二部分。如果是手动输入,你是怎么做的?
  • syntax: create table users(id int, image blob) 我使用了上述语法,但我能够检索图像。如果我们使用 blob 变量,它会自动创建浏览按钮,我们只需单击浏览图像并易于插入。我使用了startfield技术秒。网址他们给了一切..
猜你喜欢
  • 2013-12-31
  • 2014-03-19
  • 1970-01-01
  • 1970-01-01
  • 2012-10-24
  • 2020-05-19
  • 2018-04-02
相关资源
最近更新 更多