ホームページ >データベース >mysql チュートリアル >MySQL BLOB イメージが正しく表示されないのはなぜですか?

MySQL BLOB イメージが正しく表示されないのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-29 15:28:11991ブラウズ

Why Is My MySQL BLOB Image Not Displaying Correctly?

MySQL に BLOB として保存されたイメージの表示

データベースに BLOB として保存されたイメージを取得しようとすると、それらを正しく表示することが困難になります。コードはデータを取得し、ヘッダーを image/jpeg に設定して画像をエコーするスクリプトに渡します。ただし、ブラウザでは画像アイコンは表示されますが、画像自体は表示されません。

この問題を解決するには、変更されたアプローチを採用することをお勧めします。

データベースに画像を挿入する

// Retrieve image data from a temporary file
$image = file_get_contents($_FILES['images']['tmp_name']);

// Prepare an SQL statement and bind the image parameter
$query = "INSERT INTO products (image) VALUES(?)";
$stmt = $db->prepare($query);
$stmt->bind_param('s', $image);

// Execute the statement
$stmt->execute();

から画像を取得して表示します。 Database

// Prepare an SQL statement and bind the ID parameter
$sql = "SELECT * FROM products WHERE id = ?";
$stmt = $db->prepare($sql);
$stmt->bind_param('s', $id);

// Execute the statement and retrieve the result
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_array();

// Encode the image data as base64 and embed it in an HTML element
echo '<img src="data:image/jpeg;base64,' . base64_encode($row['image']) . '" />';

この改訂されたアプローチにより、MySQL に BLOB として保存されたイメージを効果的に表示できるようになります。画像パラメータをバインドし、HTML 要素内で Base64 としてエンコードすると、画像データを正しく取得して表示できます。

以上がMySQL BLOB イメージが正しく表示されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。