Получение нулевых значений при попытке загрузить большой двоичный объект - PullRequest
0 голосов
/ 02 августа 2020

У меня проблема с загрузкой изображений, хранящихся в моей базе данных Mysql, в виде больших двоичных объектов. Я уже пробовал много решений, которые нашел в других сообщениях, но результат каждый раз один и тот же:

"[{"image":null},{"image":null},{"image":null}]"

Я сокращал свой код все больше и больше, чтобы получить место как можно меньше, но ничего. Это моя последняя попытка, которая на самом деле является копией этого сообщения: Пусто PHP вывод из MySQL базы данных для longblob

<?php
 
// Create connection
$con=mysqli_connect("Server","User","Pw","DBName");
 
// Check connection
if (mysqli_connect_errno())
{
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
    
// This SQL statement selects ALL from the table 'Locations'
$sql = "SELECT CAST(engineerSignature as CHAR(1000000) CHARACTER SET utf8) as engineerSignature FROM tblservreport";
    
if ($result = mysqli_query($con, $sql)){
    
    $resultArray = array();
    $tempArray = array();
 
    // Loop through each row in the result set
    while($row = $result->fetch_object())
    {       
            $tempArray = $row;
            array_push($resultArray, $tempArray);

    }
    
    // Finally, encode the array to JSON and output the results
    echo json_encode($resultArray);
}

mysqli_close($con);
?>

, но это тоже не сработало. Я смотрю не в том месте? Я уверен, что изображения в порядке, потому что у меня есть другая программа на Windows P C, и я загружаю ее напрямую, без использования PHP, и она отлично работает. Я прочитал много ответов о том, почему это не лучший способ хранить изображение в БД, как этот, но это не мой выбор, я должен следовать этому пути.

Надеюсь, кто-то еще может увидеть, кто я отсутствует или у него есть идеи, что я могу попробовать.

Ответы [ 2 ]

0 голосов
/ 03 августа 2020

ОК, теперь знаю var_dump, Спасибо за подсказку. Я попробовал, как уже было написано var_dump($obj_Json), и получил «string (4)« NULL »», но если я попробую var_dump($row), то получил «object (stdClass) # 3 (1) {[" Image "] => string (22004 ) "�PNG IHDR \ �ho��sRGB���gAMA�� �a pHYs���o ......"

0 голосов
/ 02 августа 2020

вы должны закодировать двоичные данные как «base64», прежде чем генерировать «JSON».

$obj = base64_encode($resultArray);
$obj_Json = json_encode($obj);
var_dump($obj_Json);

Вы также можете попробовать эти шаги, чтобы найти ошибки.

  1. вместо echo используйте var_dump($resultArray), чтобы увидеть, что происходит в этом массиве.

  2. загрузите изображение, затем go в вашу mysql панель администратора и посмотрите, успешно ли загружен файл и отображается ли он как blob в базе данных. Если у вас нет проблем с загрузкой файлов

  3. , убедитесь, что ваш запрос sql правильный.

, а также ваш вопрос неясен, поэтому я дал вам базовый c совет.

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