/ / कॉलम नहीं मिला: 1054 अज्ञात कॉलम 'एरे' में 'ऑर्डर क्लॉज' yii - php, mysqprit, yii

कॉलम नहीं मिला: 1054 'ऑर्डर क्लॉज' में अज्ञात कॉलम 'ऐरे' yii - php, mysql, yii

मैं डेटाबेस का उपयोग करके क्वेरी करने का प्रयास कर रहा हूं CDbCriteria में Yii 1। मैं क्या कर रहा हूँ:

$criteria->addInCondition("t.id", $dealIdArr);
$criteria->order = "FIELD(t.id, $dealIdArr)";

और यह है $dealIdArr और यह खाली नहीं है:

Array ( [0] => 3 [1] => 2 )

लेकिन जब स्क्रिप्ट चलती है, तो यह त्रुटि देता है:

CDbCommand SQL कथन निष्पादित करने में विफल: SQLSTATE [42S22]: कॉलम नहीं मिला: 1054 अज्ञात कॉलम "एरे" को "ऑर्डर क्लॉज" में।

मैं यह समझने में असमर्थ हूं कि इसमें गलत क्या है? कोई मदद?

उत्तर:

जवाब के लिए 2 № 1

आप वर्तमान में दोनों स्थितियों में एक सरणी जोड़ रहे हैं। मैं Yii से बहुत ज्यादा परिचित नहीं हूं, लेकिन मुझे यकीन है कि यह आदेश के लिए एक स्ट्रिंग की उम्मीद करता है - और एक सरणी नहीं।

आप ऐसा कर सकते हैं implode() इसे एक स्ट्रिंग में बदलने के लिए।

$dealIdStr = implode(", ", $dealIdArr);
$criteria->addInCondition("t.id", $dealIdArr); // You can use array here
$criteria->order = "FIELD(t.id, $dealIdStr)"; // This expects a string

जैसा कि आपके सरणी में वर्तमान में केवल पूर्णांक (3 और 2) शामिल हैं, आपको "यह उद्धृत करने की आवश्यकता नहीं है - लेकिन यदि किसी भी कारण से सरणी में तार हैं, तो आपको उन्हें MySQL में उद्धृत करने की आवश्यकता है

$dealIdStr = implode("", "", $dealIdArr);
$criteria->order = "FIELD(t.id, "$dealIdStr")";

जोड़ा एकल-उद्धरण नोटिस।

जब आप एक स्ट्रिंग के रूप में एक सरणी का उपयोग करने का प्रयास करते हैं, तो PHP बस "एरे" को प्रिंट करेगा, जो कि आप "अब देख रहे हैं।"