MySQL BLOB からのイメージの表示: 互換性のないコンテンツ出力の解決
MySQL データベースに BLOB 変数として保存されているイメージを表示するコンテキストで、画像データの外側に追加のテキストをエコーしようとすると、一般的な問題が発生します。この結果、画像が正しく表示されなくなります。
この動作の理由は、ブラウザーが BLOB コンテンツ以降の出力を画像の一部として解釈し、エラーが発生するためです。この問題を解決するには、base64 エンコーディングを利用して BLOB データを に埋め込むことができる形式に変換します。
PHP コードの更新バージョンは次のとおりです:
<code class="php"><?php include("inc/library.php"); connectToDatabase(); $sql = "SELECT * FROM theBlogs WHERE ID = 1;"; $result = mysql_query($sql) or die(mysql_error()); $row = mysql_fetch_array($result); // Convert image data to base64 $base64Image = base64_encode($row['imageContent']); // Output the base64 encoded image in an <img> tag echo '<img src="data:image/jpeg;base64,' . $base64Image . '" />'; // Echo additional text after the image echo 'Hello world.'; $db->close(); ?></code>
この手法を使用すると、干渉を受けることなく追加のテキストとともに画像を表示できます。ただし、データ URI を使用すると、キャッシュのパフォーマンスに影響を及ぼし、特にモバイル デバイスでページの読み込みが遅くなる可能性があることに注意することが重要です。
以上がMySQL BLOB からの画像表示のトラブルシューティング: 画像とテキストを表示する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。