Задать вопрос

Как объединить запись в базу?

Здравствуйте! Как сделать, чтобы по нажатию кнопки OK , в базу записывался name, description и картинка? Сейчас текстовые поля записываются отдельно от картинки. Как их объединить?
<form action="admin" method="post" enctype="multipart/form-data">

<input type="text" name="name">
<input type="text" name="description"> 
<input type="submit" value="OK">

<p>Загрузить картику</p>
<input type="file" name="img_upload"><input type="submit" name="upload" value="Загрузить">


<?php
  if (isset($_POST["name"])) {
    $sql = mysqli_query($connection, "INSERT INTO `catalog` (`name`, `description`) VALUES ('{$_POST['name']}', '{$_POST['description']}')");
    if ($sql) {
      echo '<p>Данные успешно добавлены в таблицу.</p>';
    } else {
      echo '<p>Произошла ошибка: ' . mysqli_error($link) . '</p>';
    }
  }
if(isset($_POST['upload'])){
	$img_type = substr($_FILES['img_upload']['type'], 0, 5);
	$img_size = 2*1024*1024;
	if(!empty($_FILES['img_upload']['tmp_name']) and $img_type === 'image' and $_FILES['img_upload']['size'] <= $img_size){ 
	$img = addslashes(file_get_contents($_FILES['img_upload']['tmp_name']));
	$connection->query("INSERT INTO catalog (img) VALUES ('$img')");
	}
}
?>
  • Вопрос задан
  • 96 просмотров
Подписаться 2 Простой 5 комментариев
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Во первых - есть веская причина хранить картинки в бд? В целом затея весьма странная, корме того сильно влияет на производительность и потребление оперативки, про прочие минусы я вообще молчу...

Во вторых - даже если такая беда приключилась - что мешает проверять наличие файлов в разделе добавления текстовых полей, перед инсертом?

Ну и в третьих - какие-то проверки неплохо бы сделать перед вставкой, if (isset($_POST["name"])) это вообще смешно, я туда могу пробел вставить, или просто прислать пустое значение, как и в описание кстати... про сплошные дыры через инжекции вообще молчу, никаких проверок, про подготовленные выражения тоже никто никогда не слышал...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽