الخميس , سبتمبر 19 2019
الرئيسية / تدوينات برمجية / دروس PHP / دروس PDO / نظرة سريعة شرح PHP PDO

نظرة سريعة شرح PHP PDO

مرحباً بكم من جديد , الكثير من مبرمجين PHP يتعلموا كيفية الوصول للبيانات في Mysql باستخدام اوامر Mysql او mysqli في php 5.1 ولكن هناك طريقة افضل من هذا وهي PHP Data Objects PDO التي توفر لك دوال مبسطة و مرتبة لإدارة هذه العمليات وترتيبها , وكما نعلم ان العمل مع OOP أكثر حماية و تنظيماً , لذلك في هذه المقالة سوف اسلط الضوء على PDO وسوف نتعرف عليه ولماذا اساساً موجود وفيماذا يستخدم ومن يدعم هذا المنتج الرائع فقط يجب عليك احتساء كوباً من الشاي و مرافقة هذه التدوينة .

 

مقدمة عن PDO   😀

اختصار PDO يعود الى PHP Data Objects وعند المبرمجين يعني صنف او مجموعة كلاسات خصصت للتعامل مع قواعد البيانات بشتى انواعها ويتم تحديثه بشكل دوري , يعمل على PHP ويعتبر DB Driver اي انه يدير قاعدة البيانات ويتحكم بها من خلال Methods او تستطيع تسميته API بسيط , لو تحدثنا بلغة أخرى PDO عبارة عن كلاس مكتوب فيه كل دوال التعامل مع قاعدة البيانات مثل update insert delete create والخ , ولكن هذه الدوال مكتوبة بطريقة محكمة وفق نظام عالمي ومدروس لذلك يجب عليك استخدامه .

 

pdo-to-db

 

ماذا يدعم PDO ؟

بالنسبة لـ كلاس PDO يدعم العديد من قواعد البيانات الى هذا الوقت الذي اكتب فيه هذه التدوينة فأنه يدعم التالي :

 

الإتصال بقاعدة البيانات باستخدام PDO

في الحقيقة أن لكل نوع من انوع قواعد البيانات طريقة خاصة فالاتصال ولكن سوف استعرض لكم طريقة الاتصال بأشهر محركات قواعد البيانات :

 

يجب ان تنتبه لـ استخدام Try catch بحيث يجب عليك دائماً استخدامها عندما تستخدم PDO أيضاً , في المثال السابق قمنا بالاتصال بـ اكثر من قاعدة بيانات ولكن في عملك يجب ان تتصل بنوع واحد انا فقط وضعت هذا للتوضيح , أما $DBH فهذا يعني Data base handle وهذا ما استخدمه في هذا الدرس , وهو مجرد متغير يحمل قيمة كلاس .

إغلاق الإتصال

تستطيع الحصول على معلومات تفصيلية اكثر من خلال هذا الرابط php.net

 

إقتناص و معالجة الأخطاء PDO

كلاس PDO يستطيع التعامل مع مختلف الأخطاء وهذا يعني ان كل شيء تقوم به باستخدام PDO يجب ان يكون بين بلوك Try and Catch تستطيع تفعيل ميزة الأخطاء في  PDO في ثلاث وضعيات كما في المثال التالي :

هذه الوضعيات للأخطاء , وليس مهم أي وضعية وضعت في سكربتك ف دائماً إستثناء الخطأ يظهر وجميع الاشياء التي تقوم بها من خلال try catch سوف تكون داخل exception لذلك الخطأ سوف يظهر .

 

سوف اشرح الوضعيات بالتفصيل هنا :

 

هذا هو المود الرئيسي او الإفتراضي , واقصد هنا هو نوعية الخطأ الافتراضية التي تكون مفعّلة مع النظام , اذا لم تقم بتغييرها وهنا  سوف تظهر رسالة الخطأ لمحرك قاعدة البيانات الافتراضي بمعنى اخر سوف ترى mysql_error اذا كنت تستخدم mysql .

 

هذا الوضع سوف يخرج لك رسالة خطأ بناءا على تنبيهات  PHP standard  وسوف يجعل السكربت يستمر في عملياته رغم الخطأ الناتج من قاعدة البيانات , هوه مفيد لـ debugging فقط .

 

هذا الوضع سوف تحتاجه في أغلب الاوضاع خلال برمجتك هذا الخطأ يسمح لك بالتحكم بالخطأ و إخفاء المعلومات الناتجه عن الخطأ والتي قد تتسبب في إختراق الموقع مثلا ظهور بيانات username and password نتيجة خطأ معين فالبرمجة هكذا لا تعلم كيف تبدأ المشكلة ولا كيف تحلها لذلك هذه الوضع يسمح لك باخفاء هذه البيانات و وضع جملة اخرى للخطأ .

 

هذا مثال يشرح لك طريقة الإستفادة من Exceptions او الإستثناء في الأخطاء :

 

 

هناك خطأ عالمي يظهر في SELECT ولكن هذا الخطأ سوف يواجه exceptions وهذا exceptions سوف يوضح التفاصيل الخاصة بالخطأ و ايضاً يخزنها في ملف Log ولكن لا يظهر الخطأ على الشاشة بل سوف يظهر خطأ عبارة عن كلمة لطيفة توضح وجود خطأ دون تفاصيل عميقة .

 

الدرس القادم سوف اتحدث عن Insert And Update .

 

أراكم لاحقاً شكرا لكم من جديد .

عن كودر

[ كـودر ] مهندس برمجة , أحب التقنية , مُطوّر انظمة و تطبيقات , مهووس بالتقنية وكل جديد في عالم الإنترنت , أحب الكتابة عن التقنية عندما تسمح لي الفرصة .

شاهد أيضاً

الدرس الأول التنصيب و الإضافة Install and Insert PDO

بسم الله الرحمن الرحيم , بعدما قمنا بالتعرف على PHP PDO من في التدوينة نظرة …

تعليق واحد

  1. This might be written like this “You are liable to spend an incurring charge of $12 every week like a overtime fee” ?A Step-By-Step
    Guide For Eliminating Private Student Loan Debt Evie Mccunn credit cardholders are at
    risk of overspending because they may be free to take
    action and be worried about repayment later.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

*