У меня есть приложение для Android, которое делает фотографию, преобразует растровое изображение в Base64 и отправляет строку Base64 в базу данных MySQL (через PHP) для хранения в виде longblob. Эта часть прекрасно работает! Фактически, я могу загрузить longblob из phpMyAdmin в виде идеальной строки Base64 и легко конвертировать в фотографию JPEG.
Проблема в том, что мой PHP-код для получения блоба возвращает пустую строку:
{
"owner":"Unknown",
"pet_name":"Unknown",
"last_seen":"2019-04-09 11:17:19",
"contact":"999-888-7654",
"description":"rubber ducky, lotsa fun",
***"photo":""***,
"location":"Some location"
}
PHP getter:
function getReports() {
$stmt = $this->con->prepare("SELECT owner, pet_name, last_seen, contact, description, photo, location FROM Pets");
$stmt->execute();
$stmt->bind_result($owner, $pet_name, $last_seen, $contact, $description, $photo, $location);
$reports = array();
while($stmt->fetch()) {
$report = array();
$report['owner'] = $owner;
$report['pet_name'] = $pet_name;
$report['last_seen'] = $last_seen;
$report['contact'] = $contact;
$report['description'] = $description;
$report['photo'] = $photo;
$report['location'] = $location;
array_push($reports, $report);
}
return $reports;
}
Интересное примечание: если вместо приведенного выше кода я использую приведенный ниже код, я действительно получаю полную строку Base64, но с добавленными символами escape () и новой строки (\ n) повсюду:
//Select everything from table
$sql= "SELECT * FROM Pets";
//Confirm results
if($result = mysqli_query($con, $sql)) {
//Results? Create array for results and array for data
$resultArray = array();
$tempArray = array();
//Loop through results
while($row=$result->fetch_object()) {
// Add each result in results array
$tempArray=$row;
array_push($resultArray,$tempArray);
}
//Encode array to JSON and output results
echo json_encode($resultArray);
}
Я бы хотел найти способ исправить приведенный выше код PHP. Я думаю, что моя строка слишком длинна для значения $photo
? Любой совет будет чрезвычайно признателен.
Обновление: с Выбор Blob в MYSQL, получение нуля Мне удалось вывести Base64 вместо пустой строки. Тем не менее, у меня все еще есть проблема с символами escape и новой строки.
Любая помощь здесь?