PHP显示来自Mysql数据库的图像

时间:2016-08-07 20:49:46

标签: php mysql

我尝试使用以下代码显示来自mySql数据库的图像:

$con =mysql_connect('localhost','root', '');
$sdb= mysql_select_db("d022cbde",$con);
$sql = "SELECT * FROM `images`";
$mq = mysql_query($sql) or die ("Error with query");
$row = mysql_fetch_array($mq) or die("Error in line 49");
$s=$row['photo'];
echo $row['photo'];

echo '<img src="'.$s.'" style="width:200px;height:200px">';

但是我没有得到图像,而是得到了这个:

Result image

有人知道答案吗?欢迎再次提供帮助。

2 个答案:

答案 0 :(得分:0)

你的方法也很有效,因为问题:$ s是从mySQL上的Blob获取的数据。现在,我很高兴所有人都试图帮助,但我正在浏览我的数据库,因为phpmyAdmin说:

Fatal error: Allowed memory size of 335544320 bytes exhausted (tried to allocate 7057433 bytes) in /www/phpmyadmin/PMA3/libraries/auth/signon.auth.lib.php on line 151

现在我无法连接到我的数据库或者查看它或者是什么。我试图删除数据库并创建一个新数据库,但它没有帮助......你知道任何有用的东西或者在线存储图像的不同方式吗?

答案 1 :(得分:-1)

请将PDO视为更好的选择。

#Connect to db
  $dbh = new PDO('mysql:host=localhost;dbname=d022cbde', 'nonrootuser', 'pleaseusepasswords');

#Run query
  $sth = $dbh->prepare("SELECT photo FROM images");
  $sth->execute();

#Get the results of the query into an array, there could be more than one.
  $result = $sth->fetchAll(PDO::FETCH_ASSOC);

#Loop through results showing photos.
  foreach($result as $row) {
    echo '<img src="'.$row['photo'].'" style="width:200px;height:200px">';
  }

如果这是一个更大的项目,现在考虑使用MVC而不是回显。

此示例假定“images”表具有“photo”列,该列是图像的URL,是当前目录的完整路径或相对路径。