Comment faire pour ajouter les valeurs de la variable à l'intérieur de pdo->query

Je veux mettre à jour mon code actuel qui est constamment sql injecté avec PDO.

Actuellement je suis bloqué à l'aide d'une variable dans une requête PDO.

Si j'ai deux arguments comme cela

  $rowsPerPage = 3;

  //by default we show first page
  $pageNum = 1; 

  if (isset($_GET['page'])) {
     $pageNum = mysql_real_escape_string($_GET['page']);
  }

  $offset = ($pageNum - 1) * $rowsPerPage;

Et j'ai de la requête comme ceci

$STH = $DBH->query("SELECT News.ID, LEFT(NewsText,650), Title, AID, Date, imgID," .
        "DATE_FORMAT(Date, '%d.%m.%Y.') as formated_date " .
        "FROM News, Categories, NewsCheck  WHERE Name LIKE '%News - Block%' AND CID=Categories.ID AND JID=News.ID ". 
        "ORDER BY `Date` DESC LIMIT $offset, $rowsPerPage");

AOP signale une erreur dans la dernière ligne de la requête ORDER BY
Lorsque je remplace ces ligne avec
"ORDER BY Date DESC LIMIT3,3"); tout ce travail.

Donc comment faire pour ajouter les valeurs de la variable à l'intérieur de PDO::query ?

Mise à jour:
Merci de répondre à soufflet, j'ai mis à jour mon code comme ceci

$STH = $DBH->prepare("SELECT News.ID, LEFT(NewsText,650), Title, AID, Date, imgID," .
            "DATE_FORMAT(Date, '%d.%m.%Y.') as formated_date " .
            "FROM News, Categories, NewsCheck  WHERE Name LIKE '%News - Block%' AND CID=Categories.ID AND JID=News.ID ". 
            "ORDER BY `Date` DESC LIMIT :offset, :rowsPerPage;");

$STH->bindParam(':offset', $offset, PDO::PARAM_STR);
$STH->bindParam(':rowsPerPage', $rowsPerPage, PDO::PARAM_STR);

$STH->execute();

Mais erreur s'est produite:

Fatal error: Uncaught exception 'PDOException' with message
'SQLSTATE[42000]: erreur de Syntaxe ou de violation d'accès: 1064 Vous avez une
erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre
Les versions du serveur MySQL pour la bonne syntaxe à utiliser près de "-3', '3" à
ligne 1 " dans /aop/test.php:42 Stack trace: #0
/pdo/test.php(42): PDOStatement->execute() #1 {principal} jeté dans
/aop/test..

Deuxième Mise À Jour
Modifié à partir de PARAM_STR À PARAM_INT comme ce

$STH->bindParam(':offset', $offset, PDO::PARAM_INT);
$STH->bindParam(':rowsPerPage', $rowsPerPage, PDO::PARAM_INT);

Tout fonctionne.

affecter la chaîne de requête dans une variable, var_dump() les résultats et le poster ici s'il vous plaît.

OriginalL'auteur BobRock | 2012-03-30