Мне любопытно узнать, возможно ли связать массив значений с заполнителем, использующим PDO. Здесь используется попытка передать массив значений для использования с условием IN() . Я не очень хорошо объясняю, так что вот какой-то псевдокод, чтобы продемонстрировать. Я хотел бы сделать что-то вроде этого: <?php $ids=array(1,2,3,7,8,9); $db = new PDO(…); $stmt = $db->prepare( 'SELECT * FROM […]
Представьте, что у нас есть запрос: SELECT * FROM somewhere WHERE `id` IN(1,5,18,25) ORDER BY `name`; и массив идентификаторов для извлечения: $ids = array(1,5,18,25) В подготовленных заявлениях рекомендуется подготовить одно заявление и называть его несколько раз: $stmt = $mysqli->prepare('SELECT * FROM somewhere WHERE `id`=?;'); foreach ($ids as $id){ $stmt->bind_params('i', $id); $stmt->exec(); } Но теперь мне […]
иногда мне нужно вставить в таблицу несколько нулевых значений или обновить их, установив значение в NULL. Я где-то читал в документации postgresql, что это невозможно сделать, но может быть tricket со значением по умолчанию: pg_query("INSERT INTO my_table (col_a, col_b) VALUES ('whatever', default) ps: Я знаю, что в этом примере у меня будет тот же результат […]
Я где-то читал, что использование подготовленных операторов в PDO делает ваше приложение только иммунным к инъекциям SQL первого порядка, но не полностью невосприимчиво к инъекциям второго порядка. Мой вопрос: если мы использовали подготовленные операторы во всех запросах, в которых выполнялись запросы SELECT, а не только в запросе INSERT, то как можно сделать инъекцию SQL-кода второго […]