2013-05-15 3 views
0

Я загрузил изображения в таблицу успешно. Все, что я хочу сделать сейчас, - это загрузить последнее загруженное изображение из таблицы и отобразить его на экране. Для этого я использовал следующий код.Чтобы получить изображение из базы данных с помощью php

$sql=mysql_query("Select * from storeimg where id=(select max(id) from storeimg)"); 
$row=mysql_fetch_assoc($sql); 
header("content-type:image/jpeg"); 
echo $row[img]; 

Но, когда я запускаю код, изображение не отображается. Кроме того, никаких сообщений об ошибках не отображается. Я просто получаю пустой экран. Помогите мне!

Заранее спасибо.

+2

Вы не должны использовать 'mysql_ *', это устарело. Вместо этого используйте 'mysqli_ *' или 'PDO'. –

+1

'$ row [img]' должен быть '$ row ['img']' (при условии, что столбец фактически существует). Также заголовок будет лучше, чем 'header (« Content-Type: image/jpeg »);'. Наконец, не выбирайте *, если вам не нужно *, просто 'SELECT img', если это все, что вам нужно. ('SELECT *' всегда плохая идея, избегайте ее, если можете) – rpkamp

+0

Я бы советовал не хранить изображения в таблицах. Поместите изображения в каталог и просто сохраните значение пути, указывающее на ваш каталог + изображение. –

ответ

0

Существует вероятность того, что вам, возможно, понадобится unescape двоичные данные, которые вы сохранили в базе данных, в зависимости от того, как вы вставили данные в запись.

Я бы сравнил данные, прежде чем он будет экранирован и вставлен, с выбранными данными и посмотреть, есть ли какие-либо различия. У меня была аналогичная проблема с PostgreSQL, и это было решение, которое сработало для меня.

+0

Спасибо за ответ ур, Mr.Brain Moore. Я вставил изображение в таблицу, как загрузку изображения из системы. – Rambo

+0

Но я не мог понять, как сравнивать данные. Может ли у вас быть конкретным? – Rambo

+0

Rambo, я бы взял изображение для сравнения и поместил его на свой сервер. Затем я загрузил бы это изображение с вашим скриптом. Затем вытащите данные из базы данных и возьмите данные из столбца изображения $ row ['img'] и поместите его в файл. file_put_contents ('test.jpg', $ row ['img']); Затем в консоли используйте 'diff orig.jpg test.jpg' и посмотрите, есть ли какая-либо разница в данных. Если это так, то данные изображения становятся искаженными при вставке в базу данных. –