0

可能重复:
如何显示存储在数据库中的所有图像

句法:

表语法:

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]."'/>";

谢谢

4

2 回答 2

1

使用一个blob字段。

在 MySQL 中,有一个数据类型叫做blob. 您可以使用它来创建它。

有一个关于如何做到这一点的教程。

将图像插入数据库:

# 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_*or PDO

于 2012-11-08T04:26:36.593 回答
1

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

<img src="path/to/your/image" />
于 2012-11-08T04:29:24.387 回答