Подскажите функции для защиты) вот сам запрос) Все параметры в метод передаются из строки запроса.
$catSlug = Slug категории
$page = страница пагинации
public static function catProductList($catSlug, $page = 1)
{
if ($catSlug) {
$page = intval($page);
$offset = ($page - 1) * self::SHOW_BY_DEFAULT;
$db = Db::getConnection();
$catProd = array();
$result = $db->query("SELECT * FROM product WHERE status='1' AND category_sl='$catSlug' ORDER BY id DESC LIMIT ".self::SHOW_BY_DEFAULT." OFFSET ".$offset);
$i = 0;
while($row = $result->fetch()){
$catProd[$i]['id'] = $row['id'];
$catProd[$i]['name'] = $row['name'];
$catProd[$i]['price'] = $row['price'];
$catProd[$i]['image'] = $row['image'];
$catProd[$i]['is_new'] = $row['is_new'];
$catProd[$i]['slug'] = $row['slug'];
$i++;
}
return $catProd;
}
}
А где сама фильтрация запроса? Защита от SQL идёт специальным списком функции. Так для MySQL в PHP есть mysqli_real_escape_string($db, query) для PDO есть подновлённые запросы, и так далее.
В принципе, если строго следить за типами данных, которые приходят в таблицу, можно обойтись без специальных функций экранирования данных. Но, в случае невнимательности, могут возникнуть проблемы. И так как вы и так используете PDO, то работайте с подготовленными выражениями. Что может на первый взгляд показаться и сложным, и легко допустить ошибку, но есть решение, это передача данных в подготовленные выражения массивом, они с ним отлично работают.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости