如何使用php从mysql数据库显示图像

时间:2012-11-08 04:24:45

标签: php mysql

  

可能重复:
  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]."'/>";

由于

2 个答案:

答案 0 :(得分:1)

使用blob字段。

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

关于如何做到这一点tutorial

将图像插入DB:

# 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);
    }
}

显示来自DB的图像:

 <?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

答案 1 :(得分:1)

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

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