PDO: Invalid parameter number: mixed named and positional parameters
Change
LIMIT :offset, :limit
to
LIMIT ?, ?
and
$stmt->bindParam(':offset', $offset, PDO::PARAM_INT);
$stmt->bindParam(':limit', $limit, PDO::PARAM_INT);
to:
$stmt->bindValue($index+1, $offset, PDO::PARAM_INT);
$stmt->bindValue($index+2, $limit, PDO::PARAM_INT);
in your where_string you use ?
that is a positional parameter and in your limit and offset you use :
that is a named parameter that is causing the warning don't mix them