गैर-ऑब्जेक्ट की संपत्ति तक पहुंचने का प्रयास
डेटाबेस से डेटा पुनर्प्राप्त करने का प्रयास करते समय, आपको त्रुटि मिलती है "संपत्ति प्राप्त करने का प्रयास कर रहा है गैर-वस्तु का।" यह त्रुटि तब होती है जब आप किसी अशक्त या गैर-मौजूद ऑब्जेक्ट की संपत्ति तक पहुंचने का प्रयास करते हैं।
आपके विशिष्ट परिदृश्य में, आपके नियंत्रण पृष्ठ पर निम्नलिखित कोड होता है:
$results = mysql_query("SELECT * FROM sidemenu WHERE `menu_id`='".$menu."' ORDER BY `id` ASC LIMIT 1", $con); $sidemenus = mysql_fetch_object($results);
और आपके व्यू पेज पर:
foreach ($sidemenus as $sidemenu): echo $sidemenu->mname."<br />"; endforeach;
त्रुटि उत्पन्न होती है क्योंकि mysql_fetch_object() एक ऑब्जेक्ट लौटाता है, ऑब्जेक्ट की एक सरणी नहीं। इसलिए, दृश्य पृष्ठ में, आप एक गैर-पुनरावृत्ति योग्य वस्तु पर पुनरावृति करने का प्रयास करते हैं, जिससे त्रुटि होती है।
समाधान:
समस्या को हल करने के लिए, आप या तो चाहिए:
$results = mysql_query("SELECT * FROM sidemenu WHERE `menu_id`='".$menu."' ORDER BY `id` ASC LIMIT 1", $con); $sidemenus = array(); while ($sidemenu = mysql_fetch_object($results)) { $sidemenus[] = $sidemenu; }
यह परिणामों को ऑब्जेक्ट की एक श्रृंखला में परिवर्तित कर देगा, जिसे आप अपने व्यू पेज में दोहरा सकते हैं।
पीडीओ डेटाबेस के साथ बातचीत करने का एक अधिक आधुनिक और कुशल तरीका प्रदान करता है। PDOStatement::fetchAll(PDO::FETCH_OBJ) ऑब्जेक्ट की एक सरणी देता है, उस कार्यक्षमता के समान जो आप mysql_fetch_object() से उम्मीद कर रहे थे।
$stmt = $con->prepare("SELECT * FROM sidemenu WHERE `menu_id` = :menu_id ORDER BY `id` ASC LIMIT 1"); $stmt->bindParam(':menu_id', $menu); $stmt->execute(); $sidemenus = $stmt->fetchAll(PDO::FETCH_OBJ);
इनमें से किसी भी समाधान का उपयोग करके, आप डेटाबेस से डेटा पुनर्प्राप्त कर सकते हैं और "गैर-ऑब्जेक्ट की संपत्ति प्राप्त करने का प्रयास" त्रुटि से बच सकते हैं। "
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3