اذهب إلى المحتوى

السؤال

نشر (معدل)

لدي استفسار حول معالج الاخطاء Attribute في PDO حيث ان له ثلاثة انماط على حسب علمي هي :

PDO::ERRMODE_EXCEPTION

PDO::ERRMODE_SILENT

PDO::ERRMODE_WARNING

سؤالي ماهو دور كل واحدة فيهم وايهم هو النمط الافتراضي للامر setAttribute(); 

تم التعديل في بواسطة Wael Aljamal
توضيح السؤال

Recommended Posts

  • 1
نشر

القيمة الافتراضية ل PDO::ATTR_ERRMODE هي  PDO::ERRMODE_SILENT. لن يظهر أي أخطا SQL ولا حتى PHP.

  • PDO::ERRMODE_SILENT الوضع الصامت، لايظهر أي خطأ أو استثناء حتى لو حدث خطأ (عند نشر الموقع نستعمل هذه القيمة لكي لايظهر شيئ للزوار) أي في نمط الإنتاج بعد إطلاق الموقع.

  • PDO::ERRMODE_WARNING يظهر الأخطء التي تحدث في PHP أو SQL والتي تكون PHP E_WARNING عند حدوث خطأ وسوف يكمل تنفيذ السكربت مع إظهار الأخطاء.

  • PDO::ERRMODE_EXCEPTION يتم رمي استثناء عند حدوث خطأ، ويتوقف تنفيذ البرنامج.

الدالة setAttributeتستخدم لضبط نمط معين أثناء عمل الاتصال، مثل نمط الخطأ كالمثال:

$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

حيث أن الشكل العام له:

bool setAttribute ( int $attribute , mixed $value )

يعيد true في حال نجاح إسناد القيمة للنمط.

mixed هو pseudo type تمت إضافته في PHP 8، يقبل أي نوع من الأنماط، مهما كان parameter أو return أو property 

  • 0
نشر
بتاريخ 7 ساعات قال Wael Aljamal:

القيمة الافتراضية ل PDO::ATTR_ERRMODE هي  PDO::ERRMODE_SILENT. لن يظهر أي أخطا SQL ولا حتى PHP.

  • PDO::ERRMODE_SILENT الوضع الصامت، لايظهر أي خطأ أو استثناء حتى لو حدث خطأ (عند نشر الموقع نستعمل هذه القيمة لكي لايظهر شيئ للزوار) أي في نمط الإنتاج بعد إطلاق الموقع.

  • PDO::ERRMODE_WARNING يظهر الأخطء التي تحدث في PHP أو SQL والتي تكون PHP E_WARNING عند حدوث خطأ وسوف يكمل تنفيذ السكربت مع إظهار الأخطاء.

  • PDO::ERRMODE_EXCEPTION يتم رمي استثناء عند حدوث خطأ، ويتوقف تنفيذ البرنامج.

الدالة setAttributeتستخدم لضبط نمط معين أثناء عمل الاتصال، مثل نمط الخطأ كالمثال:


$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

حيث أن الشكل العام له:


bool setAttribute ( int $attribute , mixed $value )

يعيد true في حال نجاح إسناد القيمة للنمط.

mixed هو pseudo type تمت إضافته في PHP 8، يقبل أي نوع من الأنماط، مهما كان parameter أو return أو property 

بارك الله فيك وفي علمك زادك الله علما تنفع وتنتفع به ان تكرمت اخي بقي لدي سؤال اخير كنت ابحث عنه مند مدة هو ايقاف عرض الاخطاء وانت قلت لي بان PDO::ERRMODE_SILENT مخصصة لهدا الامر فارجو لو تبين لي طريقة تضمينها لمنع عرض اي خطا او الشرط الدي يجب ان يتحقق حتى امرر هدا الامر PDO::ERRMODE_SILENT وشكرا لك واسف اخي ان اطلت او اثقلت عليك

  • 0
نشر
بتاريخ 5 ساعات قال Seyid Ahmed Khessam:

فارجو لو تبين لي طريقة تضمينها لمنع عرض اي خطا

نقوم بإسناد الخاصية عند إجراء الإتصال:

$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);

طالما تستخدم PDO للاتصال مع القاعدة، أضف هذا السطر بعد إنشاء الاتصال مباشرة، وسيتم تطبيقه على كل مابعده

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...