"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > डेटाबेस परिणामों तक पहुँचने पर मुझे "गैर-ऑब्जेक्ट की संपत्ति प्राप्त करने का प्रयास" त्रुटि क्यों मिल रही है?

डेटाबेस परिणामों तक पहुँचने पर मुझे "गैर-ऑब्जेक्ट की संपत्ति प्राप्त करने का प्रयास" त्रुटि क्यों मिल रही है?

2024-11-18 को प्रकाशित
ब्राउज़ करें:704

Why am I getting the

गैर-ऑब्जेक्ट की संपत्ति तक पहुंचने का प्रयास

डेटाबेस से डेटा पुनर्प्राप्त करने का प्रयास करते समय, आपको त्रुटि मिलती है "संपत्ति प्राप्त करने का प्रयास कर रहा है गैर-वस्तु का।" यह त्रुटि तब होती है जब आप किसी अशक्त या गैर-मौजूद ऑब्जेक्ट की संपत्ति तक पहुंचने का प्रयास करते हैं।

आपके विशिष्ट परिदृश्य में, आपके नियंत्रण पृष्ठ पर निम्नलिखित कोड होता है:

$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;
}

यह परिणामों को ऑब्जेक्ट की एक श्रृंखला में परिवर्तित कर देगा, जिसे आप अपने व्यू पेज में दोहरा सकते हैं।

  • PDO का उपयोग करें:

पीडीओ डेटाबेस के साथ बातचीत करने का एक अधिक आधुनिक और कुशल तरीका प्रदान करता है। 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