2017-09-03 1 views
0

J'ai ce morceau de code qui devrait récupérer 10 enregistrements à la fois de ma table de base de données:MySQL lance erreur de syntaxe lorsque la syntaxe est correcte

$query = 'SELECT * 
      FROM shares 
      ORDER BY create_date DESC 
      LIMIT :sharesPerPage OFFSET :lowerBound'; 
$this->prepare($query); 
$this->bind(':sharesPerPage', $sharesPerPage); 
$this->bind(':lowerBound', $lowerBound); 
$this->execute(); 

Pour une raison quelconque une exception PDO est jeté avec des informations que j'ai mauvaise syntaxe autour de '10' OFFSET '0', ce qui correspond respectivement à $sharesPerPage et $lowerBound.

J'ai déjà tout vérifié, mais la requête évalue toujours une erreur. Quel est le problème avec ce code?

Répondre

2

vous devez convertir votre valeur en int. Sinon, il sera converti en chaîne

$this->bind(':sharesPerPage', (int)$sharesPerPage, PDO::PARAM_INT)); 
$this->bind(':lowerBound', (int)$lowerBound, PDO::PARAM_INT));