Как я могу выбрать данные, хранящиеся в базе данных с PHP

0

проблема, с которой я сталкиваюсь, - это то, что я хочу прочитать значение, которое автоматически используется и используется, моя база данных имеет следующий дизайн:

|   id   |   category   |   image   |
|   13   |    paper     |    0      |
id is auto_incremented, то, что я хочу сделать, это сгенерировать идентификатор и использовать его как значение в изображении а затем загрузите файл, который имеет свое имя как номер, хранящийся на изображении, в этом примере изображение будет изменено на 13, и файл будет иметь имя 13.jpg. Я начал свой код, выполнив этот mysql_query("INSERT INTO category (category,image) VALUES ('$name','$default_item')"); $ name написано пользователем, а $ default_item всегда равно нулю, то, что я хочу сделать, - это изменить изображение на равный id, используя обновление и загрузить изображение, подобное этому $image_name = '$id'. '.jpg' move_uploaded_file($_FILES["image"]["tmp_name"], "../images/category/". $image_name); $image_name = '$id'. '.jpg' move_uploaded_file($_FILES["image"]["tmp_name"], "../images/category/". $image_name); Где $ id - это идентификатор в базе данных
  • 0
    Почему бы вам не просто автоматически увеличить изображение? Вам не нужно, чтобы это была строка
  • 1
    Я был в состоянии найти решение того, что мне было нужно самостоятельно, в любом случае, спасибо
Теги:
database

2 ответа

0
Лучший ответ

Вместо использования auto increment id в качестве имени изображения. Я предлагаю создать уникальное имя изображения и вставить это имя в базу данных и использовать это имя для загрузки изображения. Используйте нижеприведенный код для создания имени изображения

$uniquesavename = time().uniqid(rand());

mysql_query("INSERT INTO category (category,image) VALUES ('$name','$uniquesavename')");

$image_name = $uniquesavename . '.jpg'
move_uploaded_file($_FILES["image"]["tmp_name"], "../images/category/" . $image_name);

Таким образом, загруженное пользователем изображение всегда будет иметь уникальное имя.

Попробуйте это и сообщите мне, если у вас возникнут какие-либо проблемы

  • 1
    Ваш код уязвим для SQL-инъекций и не работает в последней версии PHP.
  • 0
    $image_name = '$uniquesavename' . '.jpg' Вы пытались напечатать $image_name ? На что это похоже?
Показать ещё 6 комментариев
0

Несколько вещей, которые нужно упомянуть:

Вы больше не должны использовать mysql_query. mysqli_query этого используйте mysqli_query. mysql_ * устарел и был удален в последней версии PHP.

Во-вторых: никогда не используйте пользовательский контент непосредственно в SQL-запросе. Используйте подготовленное выражение. В противном случае ваш сайт уязвим для инъекций SQL.

О захвате значения автоматического прироста - см. Эту тему.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню