#php #imagick
#php #imagick
Вопрос:
Я извлекаю данные изображения из своей базы данных, использую Imagick для обработки их, а затем записываю выходные данные обратно в базу данных. Изображение нормально изменено (в данном случае повернуто), но оно не записывает обратно измененное изображение. Вместо этого он записывает обратно исходное изображение.
$sql = "SELECT photoData FROM tblPhotos WHERE photoID = '..someID..';";
$res = mysqli_query($connect, $sql);
while($row = mysqli_fetch_array($res)) {
$imagedata = $row['photoData'];
}
$im = new Imagick();
$im->readimageblob($imagedata);
$angle = 90;
$im->rotateimage("#FFF", $angle);
$output = $im->getimageblob();
$sql = "UPDATE tblPhotos SET photoData= '" . $output . "' WHERE photoID = '..someID..';";
mysqli_query($connect, $sql);
Если я изменю UPDATE $ sql на:
$sql = "UPDATE tblPhotos SET photoData= 'abc' WHERE photoID = '..someID..';";
затем я вижу, что ОБНОВЛЕНИЕ базы данных работает, так что проблема не в этом. Чего мне здесь не хватает?
Комментарии:
1. Просто снимок в темноте, но вы пробовали «ОБНОВИТЬ tblPhotos, УСТАНОВИТЬ photoData = ‘$ output’, ГДЕ PhotoID = ‘..someID ..’;»
2. Хорошая идея, но это не имеет значения. Спасибо, что посмотрели.
3. Проверяли ли вы наличие каких-либо ошибок mysqli, используя mysqli_error ($ connect) после запроса?
4. Их нет. Как уже упоминалось, если я изменяю данные на photoData = ‘abc’, они сохраняются корректно, без ошибок, но, конечно, изображение теряется.