Сформировать sql-запрос с отступом

273
25 марта 2017, 02:33

Исходные значения:

$limit = 5;
$page = intval($page);
$offset = ($page - 1) * self::SHOW_BY_DEFAULT;

Есть следующий запрос:

$result = mysqli_query($db, "SELECT * FROM products WHERE status = '1' AND category_id = '$categoryId' ORDER BY id ASC LIMIT ".$limit.' OFFSET'. $offset);

Ошибка идет после LIMIT. Как правильно сформировать запрос, который выводит записи с ограниченным количеством и отступом, который храниться в переменной $offset

Answer 1

Запросы, в которых участвуют переменные, надо формировать с помощью подготовленных выражений. Это гарантирует отсутствие ошибок, вызываемых передаваемыми данными, не говоря уже о защите от инъекций.

$sql = "SELECT * FROM products WHERE status = '1' AND category_id = ? ORDER BY id ASC LIMIT ? OFFSET ?"; 
$stmt = $db->prepare($sql);
$stmt->bind_param("sii", $categoryId,$limit,$offset);
$stmt->execute();
$result = $stmt->get_result();
READ ALSO
Хранение Emoji с Инстаграм в таблице mysql

Хранение Emoji с Инстаграм в таблице mysql

Добрый день! Скопирован текст с инстаграм, включающий Emoji:

207
PHP Simple HTML DOM Parser. Метод find не находит тег <tbody>

PHP Simple HTML DOM Parser. Метод find не находит тег <tbody>

Добрый деньЕсть следующий код php:

442
Вынести img за пределы div (регулярка)

Вынести img за пределы div (регулярка)

Необходимо преобразовать строку следующего вида

249