"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لماذا يقوم برنامج PHP النصي الخاص بي بإلقاء \"mysql_fetch_array(): يجب أن تكون المعلمة 1 موردًا\"؟

لماذا يقوم برنامج PHP النصي الخاص بي بإلقاء \"mysql_fetch_array(): يجب أن تكون المعلمة 1 موردًا\"؟

تم النشر بتاريخ 2024-11-11
تصفح:796

Why Does My PHP Script Throw \

mysql_fetch_array (): يجب أن تكون المعلمة 1 موردًا

في برنامج PHP النصي الخاص بك، تواجه الخطأ "mysql_fetch_array() يتوقع معلمة 1 أن يكون موردًا." يشير هذا إلى أن الوظيفة تتلقى نوعًا غير صحيح من المعلمات.

مصدر الخطأ

تنبع المشكلة من السطر التالي:

$result = mysql_query("SELECT * FROM student WHERE IDNO=".$_GET['id']);

ينفذ هذا السطر استعلامًا في قاعدة البيانات. إذا فشل الاستعلام أو إذا لم تكن هناك نتائج، تقوم الدالة بإرجاع قيمة منطقية، تشير إلى نجاح الاستعلام أو فشله. ومع ذلك، تتوقع الدالة mysql_fetch_array() وجود مورد كمعلمة أولى، وهو نتيجة لاستعلام ناجح.

الحل

لحل المشكلة، يجب عليك تحقق من القيمة المرجعة لـ mysql_query() للتأكد من أنها مورد. يمكنك القيام بذلك عن طريق إضافة التحقق من الأخطاء بعد سطر الاستعلام:

$result = mysql_query("SELECT * FROM student WHERE IDNO=".$_GET['id']);
if (!$result) {
    die('Invalid query: ' . mysql_error());
}

سيؤدي هذا إلى عرض رسالة الخطأ وإنهاء البرنامج النصي في حالة فشل الاستعلام.

اعتبارات إضافية

بصرف النظر عن هذه المشكلة، فمن المستحسن لاستخدام امتدادات MySQLi أو PDO المحسنة لتفاعل قاعدة البيانات بدلاً من وظائف mysql_* المهملة. توفر هذه الملحقات ميزات أمان وأداء محسنة.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3