جملة استعلام لنموذج بحث

السلام عليكم

في الأيام القليلة الماضية
عانت مدونتي من هجمة بربرية عليها
أدت إلى توقف الموقع لمدة أسوع ونصف
المهاجم تعمد الإيقاف المؤقت وليس الإيقاف النهائي
(هناك احتمالية أن الرجل لم يحسن استغلال الثغرة الموجودة)
المهاجم قام باستغلال ثغرة sql في نسخة wordpress التي أعمل عليها
وقام بحذف أحد الجداول الأساسية في المدونة
الصدق أني كنت أتوقع أن المشكلة في الاستضافة
لهذا لم أهتم كثيراً وقلت سأتواصل معهم طبعاً وتكاسلت وتخاذلت وكلام كثير من هذا القبيل 🙂
إلى أن تواصلت معهم وكانت القاسمة الموقع يستطيع الاتصال مع قاعدة البيانات بشكل طبيعي
إذن المشكلة في المدونة نفسها
أحد الأصدقاء يقول لي أن هذه شدة أذن
لكن شدة أذن لمن ولماذا؟ ما الذي يستفيده هذا الشخص بشد أذني
وماذا فعلت حتى أكون تحت خط النار
على كل الأخ عبده كان له وجهة نظر صارخة وهي
صفي النية ونام في البرية
لكني لا أعرف كيف أصفيها يا عبده أفندي
دعوكم من حديث الاختراقات والمشاكل في الأمان
مع أني اعرف أن الكثير يشده هذا الحديث
ودعونا نتكلم عن SQL
كنا نتناقش أنا وبعض الأصدقاء في العمل
عن كيفية عمل جملة استعلام sql لنموذج بحث بحيث يتم تجاهل الحقول الفارغة
فخلصنا إلى أننا نقوم بذلك بثلاث طرق مختلفة
سأضع الثلاث طرق هنا ولكم أن تختاروا
فعلياً كان معنا مدير قاعدة بيانات DBA ولم يقل بأن إحداها أفضل من الأخرى

1-select a, b, c
from abtable
where
a = decode(:a, null, a, :a)
and b = :b
2-select a, b, c
from abtable
where
(:a is null or a = :a)
and b = :b
3-select a, b, c
from abtable
where
a = nvl(:a,a)
and b = :b

الثلاث جمل تعمل بشكل جيد على أوراكل
لكني متأكد أن الثانية تعمل على جميع قواعد البيانات

أحب أن أشكر من ساهم في هذه التدوينة
1- أنا 🙂
2- ماهر شقليه
3- محمد الخضري
4- محمد مطر

تحياتي

Tags: , , ,

Leave a Reply