Динамическая переменная для установки OFFSET (mySQL, php)

Ценю любую помощь, что я делаю не так? Необъявленная переменная: $ offset

$offset = 1;

$sql = 'SELECT * FROM links order by payout desc limit $offset, 1';

0

Решение

Не используйте подстановку переменных в строках для создания таких SQL-запросов. Это создает уязвимости SQL-инъекций.

Используйте PDO или mysqli и предоставьте переменные в виде данных, например:

$pdo = new PDO(...);

$stmt = $pdo->prepare('SELECT * from links ORDER BY payout DESC LIMIT :offset, 1');

if ($stmt->execute(array(':offset' => $offset)) {
$row = $stmt->fetch();
}
1

Другие решения

Стоит отметить, что вы написали переменную inline в одинарных кавычках, переменные можно распознать только в двойных кавычках

-1

Пытаться:

$sql = 'SELECT * FROM links order by payout desc limit ' . intval($offset) . ', 1';
-2
По вопросам рекламы [email protected]