У меня есть скрипт, который создает изображение и вызывает imagepng
для вывода его в браузер.
Вместо этого я хотел бы сохранить его в базе данных MySQL (в виде большого двоичного объекта).
Я знаю, как прочитать файл в подготовленное утверждение
while ($data = fread($fp, 1024)) {
$size += strlen($data);
$stmt->send_long_data(0, $data);
}
Проблема в том, что я не хочу, чтобы imagepng
записывал в файл только для того, чтобы я мог прочитать его обратно в базу данных.
Есть ли простой способ сделать это?
UPDATE:
Вот как я пытался использовать буферизацию вывода:
ob_start();
imagepng($dst_r,null);
$img = ob_get_clean();
$db = Database::getInstance(); // Singleton on MySQLi
$s = $db->prepare("UPDATE " . $db->getTableName("Users") . " SET `Picture` = ? WHERE `UserID` = ?" );
$s->bind_param('bi', $img, $_POST['UserID']);
$s->send_long_data(0, $img);
$s->execute();
База данных не обновлена и ошибок нет.