Si tratta di un problema relativo alla parte LIMIT
di una query SQL. Questo perché la query viene passata come una stringa. Ho visto another Q qui che si occupa di parametri di associazione, niente che si occupa di segnaposto con nome in un array.Impostazione LIMIT DOP/MySQL con segnaposto con nome
Ecco il mio codice:
public function getLatestWork($numberOfSlides, $type = 0) {
$params = array();
$params["numberOfSlides"] = (int) trim($numberOfSlides);
$params["type"] = $type;
$STH = $this->_db->prepare("SELECT slideID
FROM slides
WHERE visible = 'true'
AND type = :type
ORDER BY order
LIMIT :numberOfSlides;");
$STH->execute($params);
$result = $STH->fetchAll(PDO::FETCH_COLUMN);
return $result;
}
L'errore che sto ottenendo è: Syntax error or access violation near ''20''
(20 è il valore della $numberOfSlides
).
Come posso risolvere questo?
provare a utilizzare $ params [ ""] = numberOfSlides (intval (trim ($ numberOfSlides)); –
esatto DUP http://stackoverflow.com/questions/10437423/how-can-i-pass-an -array-of-pdo-parameters-yet-still-specific-their-types/10438026 # 10438026 – goat