Otrzymuję ten denerwujący błąd i chociaż mam pomysł, dlaczego go otrzymuję, nie mogę na całe życie znaleźć dla niego rozwiązania .Błąd PDO: SQLSTATE [HY000]: Ogólny błąd: 2031
if ($limit) {
$sth->bindValue(':page', $page - 1, PDO::PARAM_INT);
$sth->bindValue(':entries_per_page', $page * $entries_per_page, PDO::PARAM_INT);
}
$sth->execute($criteria);
Zapytanie zawiera symbole zastępcze (:placeholder
). Ale aby dodać te symbole zastępcze LIMIT, muszę użyć metody ręcznej (bindValue
), ponieważ w przeciwnym razie silnik zamieni je w łańcuchy.
Nie otrzymuję błędu Nieprawidłowa liczba parametrów, więc wszystkie symbole zastępcze zostały poprawnie powiązane (zakładam).
Zapytanie:
SELECT `articles`.*, `regional_municipalities`.`name` AS `regional_municipality_name`,
`_atc_codes`.`code` AS `atc_code`, `_atc_codes`.`name` AS `substance`
FROM `articles`
LEFT JOIN `_atc_codes`
ON (`_atc_codes`.`id` = `articles`.`atc_code`)
JOIN `regional_municipalities`
ON (`regional_municipalities`.`id` = `articles`.`regional_municipality`)
WHERE TRUE AND `articles`.`strength` = :strength
GROUP BY `articles`.`id`
ORDER BY `articles`.`id`
LIMIT :page, :entries_per_page
Wszystkie wartości zastępcze znajdują się w kryteriach $, z wyjątkiem dwóch ostatnich krańcowe, które wiążą się z ręcznie bindValue()
.
spróbować wyszukiwanie w google „PDO wiążące parametry Limit” –
1) To byłoby miło obejmują ludzką czytelny komunikat o błędzie, a nie tylko z tajemniczym kodem, 2) Pokaż aktualną kwerendę tak możemy zobaczyć, skąd bierze się błąd. – deceze
@deceze Jeśli istniała tam jakaś ludzka czytelna wiadomość, powinienem: a) prawdopodobnie rozwiązać ją do tej pory, b) jeśli nie, to ją tutaj zawarłem. To był pełny komunikat o błędzie, zaufaj mi. – silkfire