programing

MySQL 데이터베이스에서 이미지를 검색하고 HTML 태그에 표시하는 방법

lastcode 2023. 9. 14. 23:16
반응형

MySQL 데이터베이스에서 이미지를 검색하고 HTML 태그에 표시하는 방법

저는 phphmyadmin을 사용하여 테이블로 MySQL 데이터베이스를 만들었습니다.저는 jpeg 파일을 보유하기 위해 BLOB 열로 이 테이블을 만들었습니다.

php 변수와 관련하여 문제가 있습니다.$result여기서.

지금까지의 내 코드: (catalog.php):

<body>
<?php
  $link = mysql_connect("localhost", "root", "");
  mysql_select_db("dvddb");
  $sql = "SELECT dvdimage FROM dvd WHERE id=1";
  $result = mysql_query("$sql");
  mysql_close($link);

?>
<img src="" width="175" height="200" />
</body>

PHP의 변수 $결과를 HTML로 가져오려면 어떻게 해야 합니까?<img>꼬리표?

그럴수는 없어요.이미지 데이터를 반환하려면 다른 php 스크립트를 만들어야 합니다(예: getImage.php).카탈로그를 변경합니다.php to:

<body>
<img src="getImage.php?id=1" width="175" height="200" />
</body>

그러면 이미지를 가져옵니다.php는

<?php

$link = mysqli_connect("localhost", "root", "", "dvddb");
$sql = "SELECT dvdimage FROM dvd WHERE id=?";
$result = mysqli_execute_query($link, $sql, [$_GET['id']]);
$image = mysqli_fetch_column($result);

header("Content-type: image/jpeg");
echo $image;

기술적으로는 데이터 URI를 사용하여 img 태그에 이미지 데이터를 넣을 수 있습니다.

<img src="data:image/jpeg;base64,<?php echo base64_encode( $image_data ); ?>" />

대부분의 경우 다이스코그가 제시하는 것처럼 별도의 스크립트를 통해 이미지를 제공하는 것이 더 낫지만 유용할 수 있는 몇 가지 특별한 상황이 있습니다.

파일명만 저장하고 이미지 자체는 파일에 저장하는 경우

while($row = mysqli_fetch_array($result)) {
    echo 'img src="',htmlspecialchars($row['filename']),'" width="175" height="200" />";
}

PDO 사용

쿼리

<?php
require 'connect.php';

$stmt = $pdo->query("SELECT * FROM products");
$products = $stmt->fetchAll(PDO::FETCH_ASSOC);

보다

<table>
    <thead>
        <tr>
            ...
            <th>Product Name</th>
            <th>Product Image</th>
        </tr>
    </thead>
    <tbody>
        <?php foreach ($products as $product) : ?>
            <tr>
                ...
                <td><?= htmlspecialchars($product['product_name']); ?></td>
                <td>
                    <img 
                        src="data:image/jpeg;base64,<?= base64_encode($product['image']); ?>" 
                        width="100" 
                        height="100"
                    >
                </td>
            </tr>
        <?php endforeach; ?>
    </tbody>
</table>

더하다$row = mysql_fetch_object($result);당신의 mysql_graphics 이후에;

당신의 html<img src="<?php echo $row->dvdimage; ?>" width="175" height="200" />

언급URL : https://stackoverflow.com/questions/7793009/how-to-retrieve-images-from-mysql-database-and-display-in-an-html-tag

반응형