तर्क को थोड़ा समायोजित करने का प्रयास करें। फीनिक्स राइट की तरह, कभी-कभी उन्हें हल करने के लिए चीजों को इधर-उधर करना पड़ता है:
$pk = $db->prepare("SELECT `grade` FROM `grading` WHERE ? BETWEEN `min` and `max`");
$pk->execute(array($mark));
$ind = $pk->fetch(PDO::FETCH_ASSOC);
echo $ind['grade'];
BETWEEN
. के लिए पहले ऑपरेंड के रूप में मान का उपयोग करना और IN
ऐसा कुछ नहीं है जिसके बारे में बहुत से लोग सोचेंगे, फिर भी यह इतना शक्तिशाली है;)
इससे भी महत्वपूर्ण बात (और फ़्रेड-ii को धन्यवाद- गलती से मुझे समझने में मदद करने के लिए), min
और max
फ़ंक्शन नाम हैं। यदि आप उन्हें कॉलम नामों के रूप में उपयोग करना चाहते हैं, तो आपको जरूरी उन्हें बैकटिक्स में लपेटें, जैसा कि मैंने ऊपर अपने कोड में किया है।
एक सामान्य नियम के रूप में, आपको हमेशा . करना चाहिए अपनी टेबल और कॉलम नामों के चारों ओर बैकटिक्स लगाएं। ऐसा न करना $foo = bar;
. लिखने के समान है पीएचपी में। ज़रूर, यह काम करेगा , लेकिन अगर bar
एक स्थिर या कार्य नाम होता है तो सभी नरक ढीले हो जाते हैं।