Php 显示mysql数据库中的图像

Php 显示mysql数据库中的图像,php,mysql,image,Php,Mysql,Image,我对php比较陌生。从mysql数据库检索blob数据后,我在浏览器(google chrome)中显示图像时遇到问题 基本上,当斜杠添加到底部回显的前面时,下面的代码可以工作。然而,我已经学习了其他在线教程,导师能够在我无法获得图像的同时,不使用斜杠显示他们的图像。我只是想知道标准规则是什么?另一件要补充的事情是,当我在浏览器中无法获取图像时,我会得到一个令人毛骨悚然的缩略图。如果有人能告诉我如何可靠地显示图像,我将不胜感激。我想创建的网站只是关于图像的。所以这是一种基本的。非常感谢您抽出时间

我对php比较陌生。从mysql数据库检索blob数据后,我在浏览器(google chrome)中显示图像时遇到问题

基本上,当斜杠添加到底部回显的前面时,下面的代码可以工作。然而,我已经学习了其他在线教程,导师能够在我无法获得图像的同时,不使用斜杠显示他们的图像。我只是想知道标准规则是什么?另一件要补充的事情是,当我在浏览器中无法获取图像时,我会得到一个令人毛骨悚然的缩略图。如果有人能告诉我如何可靠地显示图像,我将不胜感激。我想创建的网站只是关于图像的。所以这是一种基本的。非常感谢您抽出时间

<?php
$conn = mysql_connect ("localhost","root","arctic123");
$db = mysql_select_db ("user_images", $conn);

if(!$db) {
    echo mysql_error();
}

$q = "SELECT * FROM images";
$r = mysql_query ("$q",$conn);
if($r) {
    while($row = mysql_fetch_array($r)) {
        //echo $row ['username'];
        //echo "<br>";
        header ("Content-type: image/jpeg");
        echo $row ['logo'];
        //echo "<br>";
    }
}else{
    echo mysql_error();
}
?>

在代码中的任何输出之后,都不能有
标题


最佳做法是将图像上载到目录,然后将图像的路径/文件名存储在数据库中。还可以更轻松地操作图像,例如使用PHP创建不同大小和缩略图。而且它占用的磁盘空间大约减少了四倍…

希望您不要将图像存储在MySQL上,如果您这样做了,请停止这种有害的行为,因为这将使您的数据库变得不必要的沉重…

我建议不要将图像存储在数据库中。虽然在技术上是可行的,但它存在严重的性能问题。最佳做法是为图像指定一个文件夹,然后直接访问它们。如果您想要MySQL的过滤和排序功能,那么将当前存储图像数据的BLOB列替换为包含文件名的VARCHAR

<?php
$conn = mysql_connect ("localhost","root","arctic123");
$db = mysql_select_db ("user_images", $conn);
$imgdir = "/path/to/image/directory/";

if(!$db) {
    echo mysql_error();
}

$q = "SELECT * FROM images";
$r = mysql_query ("$q",$conn);
if($r) {
    while($row = mysql_fetch_array($r)) {
        echo $row['username'];
        echo "<br>";
        echo "<img src='" . $imgdir . $row['logo'] . "' />";
        echo "<br>";
    }
}else{
    echo mysql_error();
}
?>


看在上帝的份上,不要使用mysql*。这些函数已被弃用,您应该至少使用
mysqli
…可能的重复项:和;此外,除了切换到mysqli之外,您可能还应该为数据库设置一个非root用户。如果您的站点类似于“关于图像的所有内容”,那么为什么要将它们存储在数据库中?有什么原因吗?我不明白“使用斜杠”是什么意思。我看不到任何斜杠,只看到那些表示注释的斜杠。由于您是php新手,我假设您是web编程新手。尽量避免将图像存储在数据库中。只需使用文件系统。我只遇到过几个将图像存储在数据库中有意义的实例。图像的可能副本可以在目录中排序吗?我以为这是不可能的。我不是指人工操作。如果我理解正确的话,你不需要对图像进行排序。您可以根据数据库中的引用或任何其他字段进行排序。这是一个笼统的说法,请小心。我的blob存储在一个数据库中,用户群超过1000万,并发连接超过25万个,没有问题。这取决于您的物理体系结构,即磁盘布局等。