2017-09-03 83 views
0

我有這樣的一段代碼,這應該從我的數據庫表中檢索10條記錄一次:的MySQL拋出語法錯誤時,語法是正確的

$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(); 

出於某種原因,一個PDO異常正與我有信息拋出圍繞「10」OFFSET「0」的錯誤語法分別對應於$sharesPerPage$lowerBound

我已經檢查了一切,但查詢仍然計算出錯誤。該代碼有什麼問題?

回答

2

您必須將您的值轉換爲int。否則它將轉換爲字符串

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