Получение изображений BLOB-объектов из базы данных на PHP: простые методы и примеры кода

В этой статье блога мы рассмотрим различные методы получения изображений больших двоичных объектов из базы данных с помощью PHP. Мы предоставим вам разговорные объяснения и примеры кода, чтобы сделать процесс понятным и простым. Итак, приступим!

Метод 1: использование расширения MySQLi
Расширение MySQLi — популярный выбор для взаимодействия с базами данных MySQL на PHP. Вот пример того, как можно получить изображение большого двоичного объекта с помощью этого расширения:

<?php
  // Connect to the database
  $mysqli = new mysqli("localhost", "username", "password", "database");
  // Check connection
  if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: " . $mysqli->connect_error;
    exit();
  }
// Fetch blob image
  $sql = "SELECT image_blob FROM images_table WHERE id = 1";
  $result = $mysqli->query($sql);
  if ($result) {
    $row = $result->fetch_assoc();
    $imageBlob = $row['image_blob'];
    // Display the image
    header("Content-type: image/jpeg");
    echo $imageBlob;
  }
// Close the connection
  $mysqli->close();
?>

Метод 2: использование расширения PDO
PDO (объекты данных PHP) — еще одно мощное расширение для работы с базами данных на PHP. Вот пример получения изображения большого двоичного объекта с использованием PDO:

<?php
  // Connect to the database
  $dsn = "mysql:host=localhost;dbname=database";
  $username = "username";
  $password = "password";
  try {
    $pdo = new PDO($dsn, $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    // Fetch blob image
    $sql = "SELECT image_blob FROM images_table WHERE id = 1";
    $stmt = $pdo->query($sql);
    $row = $stmt->fetch(PDO::FETCH_ASSOC);
    $imageBlob = $row['image_blob'];
    // Display the image
    header("Content-type: image/jpeg");
    echo $imageBlob;
  } catch (PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
  }
?>

Метод 3: использование кодировки Base64
В некоторых случаях может потребоваться закодировать изображение большого двоичного объекта как строку Base64 перед сохранением его в базе данных. Вот как можно получить и отобразить изображение большого двоичного объекта в кодировке Base64:

<?php
  // Connect to the database
  // Fetch blob image as Base64 string
  $sql = "SELECT image_blob_base64 FROM images_table WHERE id = 1";
  $result = $mysqli->query($sql);
  if ($result) {
    $row = $result->fetch_assoc();
    $imageBlobBase64 = $row['image_blob_base64'];
    // Display the image
    echo '<img src="data:image/jpeg;base64,' . $imageBlobBase64 . '" alt="Image">';
  }
// Close the connection
?>

В этой статье мы рассмотрели три различных метода получения изображений больших двоичных объектов из базы данных с помощью PHP. Мы рассмотрели использование расширений MySQLi и PDO, а также получение изображений больших двоичных объектов в кодировке Base64. Следуя предоставленным примерам кода, вы сможете реализовать эти методы в своих собственных проектах. Приятного кодирования!