Это тест на умение писать ответы
В данном случае ценность ответа для автора вопроса нулевая.
Вы написали ответ не для него, а чтобы показать, смотрите, я тоже умею! Но такие ответы писать не надо
iljaGolubev, медленнее, но не принципиально. Именно потому что в транзакции. Но зато в 100 раз нагляднее, что для новичка самое важное.
А try catch - зачем?
Мне кажется, вы не совсем понимаете назначение этой конструкции.
Попробуйте сформулировать, для чего, по вашему, нужно использовать try catch?
Правильно, потому что с самого начала вместо всех этих телодвижений надо было в вопросе привести структуру массива.
Все ответы исходят из того, что это простой список, где через запятую идут строки БД:
[{snippet: 1, amp:, date:1, anchor:1, link: 1}, {snippet: 2, amp:2, date:2, anchor:2, link: 2},...]
но у него может быть и любая другая структура.
И код зависит от неё
ладно-ладно, строка-то бог с ней
А параметры-то, параметры - вы вот так и предлагаете передавать?
Посчитать количество элементов в массиве, и садиться писать вот это вот $data[0]['snippet'], $data[1]['snippet'], $data[999]['snippet']?
отличный ответ, "строку запроса надо сформировать"
идеально подходит для человека, который массивы видит первый раз в жизни :)
Ну и $params =[$data[0]['snippet']... выглядит троллингом.
или погодите. Вы серьезно предлагаете все это писать руками?
Вопрос дурацкий, я бы удалил.
РНР не используется для "хранения файлов".
Если вам личные файлы хранить, то РНР тут не при чем.
Если у вас какой-то сайт, на котором должны лежать файлы, то РНР опять не при чем.
При этом сначала надо определиться с объемом.
Если для сайта, то должно хватить стандартного размера, выделяемого под хостинг
Если для каких-то других целей, то их надо обозначить, равно как и предполагаемые объемы.
неплохо для начинающего, но несколько замечаний.
вместо PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8' надо писать charset=utf8mb4 выше в DSN
вместо этого в $options обязательно должно быть PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
вместо длинной бороды с bindParam проще написать $stmt->execute($values);
сам цикл желательно заключить в транзакцию, для скорости и консистентности.
Смешались в кучу кони, люди.
Отношения, таблицы, выборки, заливка данных, бизнес-модель.
Вам надо для начала навести порядок в своей голове, и связно, а - главное - последовательно изложить свои проблемы. Не перескакивая с одной на другую.
И почему вы каждый вопрос задаете с нового аккаунта?
Свойству класса можно присвоить значение, и использовать его в методах.
Это всё, что можно ответить на такой невнятный вопрос.
Ответ на вопрос "А что может случиться?" зависит от конкретных деталкй - назначение класс, назначение метода, для чего используется user_id
fanus, ну в общем я примерно понимаю ваш ход мысли, но он абсолютно неверный.
"htmlspecialchars" никакую передачу не предотвращает. Эта функция форматирует управляющие последовательности HTML, и должна применяться при выводе данных, если они выводятся в HTML.
К SQL же она никакого отношения не имеет, что можно понять даже из названия.
В данном случае ценность ответа для автора вопроса нулевая.
Вы написали ответ не для него, а чтобы показать, смотрите, я тоже умею! Но такие ответы писать не надо