Преобразование текстового столбца, содержащего изображения, в столбец BLOB приводит к поломке - PullRequest
1 голос
/ 04 мая 2019

У меня есть база данных с профилями пользователей и столбцом для изображения профиля.Прямо сейчас тип столбца - TEXT, однако я хочу изменить его на BLOB.Однако изменение столбца приводит к тому, что изображения не выводятся правильно и становятся поврежденными.Как я могу решить эту проблему?

Я попытался преобразовать столбец в BLOB с помощью Phpmyadmin, однако это вызывает проблему.Код остается прежним.Когда я преобразовываю BLOB обратно в текст, это решает проблему, однако я хочу, чтобы столбец был BLOB для упрощения обслуживания.

Php 7.3.5 Mysql 8.0.16

Код, который выводит изображение:

<?php
/* Error handler. Code not shown. Works fine */

/* Checks the login state. Code not shown. Works fine */

$default_pic = base64_decode('Default pic');
header('Content-Type: image/png');
if ($login_state == false) {
  /* Echo a not logged in picture if the user is not logged in */
  echo $default_pic;
} else {
  /* gets the profile picture from the database */
  $client_un = $_SESSION['client_un'];
  $mysqli = new mysqli("xxx", "xxx", "xxx", "userdata");
  $stmt = $mysqli->prepare("SELECT profilepic FROM userdata WHERE username=?");
  $stmt->bind_param('s', $client_un);
  $stmt->execute();
  $stmt->bind_result($profile_pic);
  $stmt->fetch();
  $stmt->close();
  if ($profile_pic == '') {
    /* echo a blank picture if the user has not set a picture before */
    echo $default_pic;
  } else {
    /* Echo the profile picture. This part has problems */
    echo $profile_pic;
  }
}
?>

Я ожидаю, что обе версии с текстом и типом столбца BLOB будут выводить одно и то же, но когда столбец является BLOB, вывод будет искаженным изображением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...