كيف يمكن معرفة الأخطاء الناتجة عن قاعدة البيانات داخل إطار العمل Codeigniter الخاص بلغة PHP؟

تاريخ النشر : 2013 ,October 30
التصنيف : برمجة | Leave a Comment

كنت أحاول أن أنشئ موقع بسيط للغاية (عبارة عن مدونة) بإستخدام إطار العمل Codeigniter، وكنت أعمل على الجزء الخاص بتعديل أو تحديث بيانات تدوينة ما من داخل لوحة تحكم الموقع Back-end، وكان هدفى هو أن تتم عملية تعديل البيانات عن طريق الـ Ajax، لكى لا تتم إعادة تحميل الصفحة من جديد. ومن المفترض أن يكون ناتج عملية تعديل البيانات فى قاعدة البيانات هو النجاح أو الفشل، ليس هناك إحتمال آخر. فإذا نجحت العملية نعرض للمستخدم رسالة تفيد بذلك، وإذا فشلت نعرض له رسالة أخرى تفيد بذلك وتذكر له السبب وراء الفشل.

وهذا هو ما فعلته برمجيا، ولكن عند التجربة وجدت أن رسالة النجاح هى فقط التى تظهر لى عند النجاح فى تعديل البيانات، أما فى حالة الفشل فلا يظهر لى أى شئ. وعندما بحثت عن سبب المشكلة وجدت أنه  لكى نستطيع أن نعرض رسائل الخطأ الناتجة عن قاعدة البيانات داخل Codeigniter فيجب أولا أن نغير القيمة الإفتراضية للعنصر التالى:

الموجود فى ملف الإعدادات الخاص بقاعدة البيانات application/config/database.php  بحيث يأخد القيمة FALSE  بدلا من القيمة الإفتراضية TRUE ، ليصبح فى النهاية هكذا:

أما بالنسبة لأشهر الدوال التى نستطيع من خلالها معرفة الأخطاء الناتجة عن قاعدة البيانات فهما دالاتان هما:

وهى الدالة التى نستطيع من خلالها معرفة رقم الخطأ الحاصل والناتج عن قاعدة البيانات. يمكن مشاهدة قائمة بأرقام وتفاصيل الأخطاء الخاصة بقاعدة بيانات MySQL من هنا.

أما الدالة الثانية فهى:

وهى الدالة التى نستطيع من خلالها معرفة وصف الخطأ الذى حدث، وهى بالطبع أفضل من معرفة رقم الخطأ فحسب.ولكن -مع ذلك- فإن رقم الخطأ له أهمية كبرى فى بعض الأحيان، وهى -مثلا- عندما تريد أن تتخد قرارات برمجية معينة بناء على حدوث خطأ معين، فهنا يجب عليك أن تستخدم رقم الخطأ وليس وصفه، لأن الوصف غالبا ما لا يكون مجردا، وإنما فى معظم الحالات يحتوى على أسماء تتغير من حالة لأخرى، كأن يحتوى -مثلا- على أسم قاعدة البيانات، أو أسم جدول فيها، أو أسم حقل معين فى هذا الجدول، وكل هذه المسميات تتغير من مبرمج لآخر -حسب تفضيلاته-، ومن تطبيق لآخر أو من موقع لآخر.

وآخيرا فإن الدالة التى أنشأتها واستخدمتها لتعديل البيانات فى هذه الحالة هى مايلى:

 

التعليقات



إترك تعليق






رب هب لى شجاعة لتغيير الأشياء التى أستطيع تغييرها، و سكينة لقبول الأشياء التى لا أستطيع تغييرها، و حكمة لمعرفة الفارق بينهما.
سان فرانسيز