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

Как исправить ошибку с бд?

Здравствуйте! Я пишу админку и задача там - загрузить много фото, фотки сами отправляются в корень сайта, а пути от них должны отправляться в бд, сейчас в строчку бд прилетает Array

$uploaddir = "../uploads-gallery";

foreach ($_FILES["images"]["error"] as $key => $error) {
    if ($error == UPLOAD_ERR_OK) {
        $tmp_name = $_FILES["images"]["tmp_name"][$key];

        // Функция basename() помогает защититься от атак на файловую систему;
        // иногда требуется дополнительная проверка или очистка имени файла
        $name = basename($_FILES["images"]["name"][$key]);
        move_uploaded_file($tmp_name, "$uploaddir/$name");
    }
};

$images = $_FILES["images"]["name"];
  • Вопрос задан
  • 173 просмотра
Подписаться 1 Средний 2 комментария
Решения вопроса 2
cyber-jet
@cyber-jet
Очевидно, что поле формы с множественной загрузкой файлов выдает массив, чтобы записать значения в базу надо всё-же :
$uploaddir = "../uploads-gallery";

foreach ($_FILES["images"]["error"] as $key => $error) {
    if ($error == UPLOAD_ERR_OK) {
        $tmp_name = $_FILES["images"]["tmp_name"][$key];

        // Функция basename() помогает защититься от атак на файловую систему;
        // иногда требуется дополнительная проверка или очистка имени файла
        $name = basename($_FILES["images"]["name"][$key]);
        move_uploaded_file($tmp_name, "$uploaddir/$name");
        ... функция записи в таблицу имени файла ($_FILES["images"]["name"][$key]);
    }
};
Ответ написан
Комментировать
@Akina
Сетевой и системный админ, SQL-программист.
Представим, что проблему сохранения вы как-то решили... А что вы намерены делать с сохранённым значением?

Вариант 1 - всегда только извлекать весь массив целиком, в том виде, в каком он сохранялся. Никаких извлечений части массива, никаких по нему поисков, сортировок и прочего. Тогда преобразуйте массив во вменяемый сериализованный формат и сохраняйте в поле БД. Виктор Кожухарь в своём ответе разобрал этот вариант.

Вариант 2 - возможна какая-то обработка. Извлечение части массива по какому-то критерию (порядковый номер, соответствие шаблону и пр.), поиск в массиве по заданному критерию, сортировка самого массива либо массивов по какому-то критерию.. Тогда однозначно делите массив на отдельные элементы и сохраняйте их по одному (конечно, соответствующим образом должна измениться структура БД). Делить можно и на стороне PHP (как показывает Евгений в своём ответе), и в запросе на запись на стороне MySQL. Первое, как я понимаю, вам проще сделать, но правильно - второй вариант.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы