मुझे यह कष्टप्रद त्रुटि मिल रही है और हालांकि मुझे पता है कि मुझे यह क्यों मिल रहा है, मैं अपने जीवन के लिए इसका समाधान नहीं ढूंढ सकता ।पीडीओ त्रुटि: एसक्यूएलएसटीएटी [एचवाई 000]: सामान्य त्रुटि: 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);
क्वेरी में प्लेसहोल्डर्स (:placeholder
) शामिल हैं। लेकिन उन LIMIT प्लेसहोल्डर्स को जोड़ने के लिए, मुझे मैन्युअल विधि (bindValue
) का उपयोग करने की आवश्यकता है क्योंकि अन्यथा इंजन उन्हें स्ट्रिंग में बदल देगा।
मुझे पैरामीटर त्रुटि की अमान्य संख्या नहीं मिल रही है, इसलिए सभी प्लेसहोल्डर सही ढंग से बाध्य किए गए हैं (मुझे लगता है)।
क्वेरी:
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
सभी प्लेसहोल्डर मूल्यों पिछले दो सीमा, जो मैं मैन्युअल bindValue()
साथ बाँध के अलावा, $ मापदंड में रहते हैं।
कोशिश "में LIMIT मापदंडों बाध्यकारी पीडीओ" गूगल में खोज करने के लिए –
1) यह बजाय मानव पठनीय त्रुटि संदेश शामिल करने के लिए सिर्फ गुप्त कोड की, 2) अत: आपका वास्तविक क्वेरी दिखाएँ अच्छा किया गया है जाएगा हम देख सकते हैं कि त्रुटि कहां से उत्पन्न होती है। – deceze
@deceze अगर वहां कोई मानव पठनीय संदेश था, तो मैं चाहता था: ए) शायद इसे अब तक हल किया गया है, बी) यदि नहीं, तो इसे यहां शामिल किया गया। यह पूर्ण त्रुटि संदेश था, मेरा विश्वास करो। – silkfire