0

テーブルに格納された画像を PHP データベースに表示したいのですが、テーブル名は「gifts」で、画像を含む列の名前は「pics」です。

(これは良いアプローチではないことはわかっていますが、そうする必要があります)

次のコードを実行すると:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org  /TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Untitled Document</title>

</head>

<body>

<?php

$con = mysql_connect("localhost","root","");

if (!$con)

 {

  die('Could not connect: ' . mysql_error());

 }


mysql_select_db("sendemotions", $con);


$result = mysql_query("SELECT * FROM gifts");


echo "<table border='1'>

 <tr>

  <th>Item Picture/th>

 <th>Name Of Item</th>

 <th>Item Type</th>

 <th>Item Price</th>


</tr>";


while($row = mysql_fetch_array($result))

  {

 echo "<tr>";


 echo "<td>" . $row['pics'] . "</td>";

 echo "<td>" . $row['g_name'] . "</td>";

   echo "<td>" . $row['g_price'] . "</td>";

  echo "<td>" . $row['g_type'] . "</td>";


  echo "</tr>";

 }

 echo "</table>";


mysql_close($con);

?> 

</body>

</html>

テーブルが表示されますが、pictures という名前の列に奇妙な値が含まれています。 これが出力です

エラーの内容とこれを解決する方法を教えてください:(私はひどくそれをする必要があります.

4

3 に答える 3

2

画像を取得するには、2 つ目の php スクリプトが必要だと思います。このスクリプトは、画像を表示するために画像ヘッダーを送信する必要があります。例は次のようになります。

<?php

$id = $_GET['id']; #WARNING INSECURE. FOR DEMO ONLY!!!

connectToDatabase(); #However you do it

$sql = "SELECT pics FROM gifts WHERE ID = $id";

$result = mysql_query($sql) or die(mysql_error());  
$row = mysql_fetch_array($result);

header("Content-type: image/jpeg");
echo $row['pics'];
$db->close();

?>

警告: Abovo コードは非常に安全ではありません!!! $_GET['id'] が整数かどうかを確認する必要があります!

元の php スクリプトでは、これをイメージ行に含めます。

echo '<td><img src="http://yourdomain/imagescript.php?id="' . $row['id'] . '"></td>';

このコードは testet ではありません...簡単な概要です。

于 2012-12-22T14:56:33.750 に答える
1

画像をBlobとしてデータベースに保存していると思います。次に、php 出力でヘッダー content-type を設定する必要があります。
このリンクを確認して、blob mysql の画像を表示してください

もう 1 つの方法は、base64_encode
base64_encodeを使用
して、mysql blob に保存されている画像を表示することです。

于 2012-12-22T14:57:45.363 に答える