См. обсуждение здесь . Это от 2.6.1, но, похоже, все еще применяется. По крайней мере, я не видел доказательств обратного. Суть вопроса (цитируется по этой ссылке):
Это по дизайну. В своей бесконечной мудрости Microsoft решила сделать «длинный» тип C всегда 32-битным знаковым целым - даже на 64-битных системах. В большинстве систем Unix длина не менее 32 бит, но обычно sizeof (ptr).
blockquote>
Удалите переменные из оператора prepare и свяжите значения.
$sql = "SELECT * FROM profils ORDER BY id DESC LIMIT :first, :perPage";
$sth = $db->prepare($sql);
$sth->bindValue(':first', $first);
$sth->bindValue(':perPage', $perPage);
if ($sth->execute()) {
if ($sth->rowCount() > 0) {
$data = $sth->fetch(PDO::FETCH_ASSOC);
}
}
print_r($data);