Как отобразить на моей веб-странице изображение, сохраненное в Mysql как Medium Blob?

Итак, у меня есть этот код в HTML:

 <img src="imagescript.php?id=1">

И у меня есть этот код в imagescript.php:

<?php
    $servername="localhost";
    $username="root";
    $conn= mysql_connect($servername,$username)or die(mysql_error());
    mysql_select_db("licitatii",$conn);
    $sql="select picture from auctions where auction_id='$_GET[id]'";
    $result=mysql_query($sql,$conn) or die(mysql_error());
    $row = mysql_fetch_assoc($result);
    $image = $row['picture'];
    header("Content-type: image/jpeg");
    print $image;
 ?>

Я использовал это из инструкций в Интернете, но мое изображение не отображается.

Возможно ли, что я неправильно загрузил изображение?

Я использовал ‹input name =" regphoto "type =" file "> в форме method =" POST ", а затем вставил в таблицу $ _POST [regphoto]

Если это вам поможет, вот php-скрипт, который я использовал для вставки фотографии после нажатия кнопки отправки:

$ sql = "вставить в аукционы (_3 _, _ 4 _, _ 5 _, _ 6 _, _ 7 _, _ 8 _, _ 9 _, _ 10 _, _ 11 _, _ 12_) значения (NULL, '$ ownerid', '$ parentcategoryid', '$ _ POST [regtitle]', '$ _POST [regdescription]', '$ _ POST [regphoto]', '$ _ POST [regpostage]', '$ _ POST [regstartingprice]', '$ _ POST [regbuyoutprice]', '$ expiration') ";

Как видите, я вставил в столбец "изображение" (тип mediumblob) значение $ _POST [regphoto]


person ionescho    schedule 16.06.2011    source источник
comment
Какой код вы имеете в виду?   -  person AllisonC    schedule 16.06.2011
comment
@AllisonC извините, я не знал, что мне нужно было сделать отступы, чтобы увидеть код   -  person ionescho    schedule 16.06.2011
comment
Если вы сделаете var_dump ($ image) перед заголовком, получите ли вы какие-либо данные?   -  person AllisonC    schedule 16.06.2011
comment
@AllisonC К сожалению, нет :(   -  person ionescho    schedule 16.06.2011
comment
echo $ sql и вставьте его прямо в базу данных и посмотрите, получите ли вы результаты или сообщение об ошибке.   -  person AllisonC    schedule 17.06.2011


Ответы (1)


Несколько комментариев, которые могут помочь:

  1. Вероятно, вам потребуется войти на сервер mysql с паролем (хотя и не обязательно ...).
  2. Вам нужно защитить свой код от атак sql-инъекций, самый простой способ в вашем случае - это что-то вроде $id = (int) $_GET[id] и использовать $id в вашем запросе.
  3. Вам также нужно будет опубликовать php-код, который вы использовали для вставки изображения, так как вставка $_POST[photo] звучит неправильно: вам нужен $_FILES['photo'], и это массив, см. manual.
person jeroen    schedule 16.06.2011
comment
Хорошо, спасибо за дополнительную информацию, но сейчас главная проблема - это возможность отображать изображения. Это часть моего последнего проекта для колледжа, и вопросы безопасности сейчас не являются приоритетом. - person ionescho; 16.06.2011
comment
@ user783476 У вас не будет много изображений для показа, если кто-то сможет стереть всю вашу базу данных, просто введя URL-адрес ;-) В любом случае, проверьте пункты 1. и 3. - person jeroen; 16.06.2011
comment
что вы имеете в виду, $ _POST ['photo'] - это массив? Это тип файла, как указано во входном теге - person ionescho; 16.06.2011
comment
если вы знаете и у вас есть время, вы можете опубликовать пошаговые инструкции о том, как правильно вставить картинку в мою базу данных? В случае, если я ошибаюсь. Учебники в сети меня сбивают с толку - person ionescho; 16.06.2011
comment
@ user783476 Извините, мой третий пункт был не совсем верным, я его сейчас изменил. У меня нет кода для загрузки изображений в базу данных, потому что я никогда этого не делаю; Я просто сохраняю файл где-нибудь на сервере и сохраняю в базе данных некоторые из его свойств, а не его содержимое. - person jeroen; 16.06.2011