حل الخطأ "محاولة الحصول على خاصية غير كائن" في PHP
عند العمل مع PHP، قد تواجه الخطأ "محاولة الحصول على خاصية غير كائن" للحصول على ملكية غير كائن." يحدث هذا الخطأ عادةً عند محاولة الوصول إلى خصائص كائن لم تتم تهيئته بشكل صحيح أو أنه فارغ.
في حالة الكود المقدم، تكمن المشكلة في جلب بيانات القائمة الجانبية من قاعدة البيانات. تقوم الدالة 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; }
يقوم هذا الكود بتحويل الكائن الوحيد الذي تم إرجاعه بواسطة mysql_fetch_object() إلى مصفوفة من الكائنات. يمكن بعد ذلك تكرار صفحة العرض عبر المصفوفة دون مواجهة خطأ في الخاصية.
البديل الآخر هو استخدام PDO، الذي يوفر واجهة أكثر حداثة وأمانًا لتفاعلات قاعدة البيانات. يمكن استخدام الأسلوب PDOStatement::fetchAll(PDO::FETCH_OBJ) لجلب مصفوفة من الكائنات من استعلام قاعدة بيانات.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3