<?php
try
{
$db = new PDO("mysql:host=localhost;dbname=DBNAME", "USER", "PASSWD");
$stmt = $db->prepare("SELECT id, name FROM testdb ORDER BY time DESC LIMIT :index, 10");
$stmt->bindValue(":index", $_GET['index'], PDO::PARAM_INT);
$stmt->execute();
while( $r = $stmt->fetch(PDO::FETCH_ASSOC) )
{
echo var_dump($r);
}
}
catch( PDOException $e )
{
die("Exception");
}
Проблема в этой строке: $stmt->bindValue(":index", $_GET['index'], PDO::PARAM_INT);
А конкретным параметром является второй.
Код, как указано выше, не работает, ничего не возвращает, поэтому цикл while не выполняется. Если я заменю $ _GET ['index'] на число, например, 10, оно будет работать нормально, оно возвращает 10 строк. Повтор $ _GET ['index'] отображает число, поэтому оно должно передавать число. Я также пробовал bindParam, но результат тот же.
Почему это не работает?
EDIT:
Интересно ... Если я заменю $_GET['index'] with (int)$_GET['index']
, это сработает.