ما هي الاستعلامات ذات المعلمات الموضحة بلغة إنجليزية بسيطة؟

StackOverflow https://stackoverflow.com/questions/4906421

سؤال

هل يمكن لأي شخص أن يشرح لي بلغة إنجليزية بسيطة ما هي الاستعلامات ذات المعلمات وكيفية تنفيذها في PHP لقاعدة بيانات MySQL لتجنب إدخال SQL؟

هل كانت مفيدة؟

المحلول

قسم البيانات المعدة والإجراءات المخزنة في PHP الدليل ، في حين أنه يتعلق تحديدًا بـ PDO ، فإنه يغطي هذا جيدًا عندما يقول:

يمكن اعتبارها نوعًا من قالب مترجمة لـ SQL أن ملف يريد التطبيق أن يعمل ، يمكن أن يكون حسب الطلب باستخدام معلمات متغيرة. البيانات المعدة تقدم نوعين رئيسيين الفوائد:

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

  • معلمات البيانات المعدة لا تحتاج إلى الاقتباس ؛ السائق يعالج هذا تلقائيًا. إذا كان يستخدم التطبيق حصريا المعدة البيانات ، يمكن للمطور أن يكون متأكدا أنه لن يحدث أي حقن SQL (ومع ذلك ، إذا كانت الأجزاء الأخرى من يتم إنشاء الاستعلام باستخدام إدخال غير مهذب ، حقن SQL هو لا يزال ممكنًا).

إذا كنت تلاحق مثالًا محددًا لكيفية استخدامها ، فإن الصفحة المرتبطة أعلاه تتضمن أيضًا نماذج التعليمات البرمجية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top