"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية استبدال mysql_real_escape_string في PDO: البيانات المعدة كحل؟

كيفية استبدال mysql_real_escape_string في PDO: البيانات المعدة كحل؟

تم النشر بتاريخ 2024-10-31
تصفح:365

How to Replace mysql_real_escape_string in PDO: Prepared Statements as the Solution?

استبدال mysql_real_escape_string في PDO

في عملية الانتقال من mysql_* إلى PDO، قد تواجه معضلة مع عدم وجود مكافئ مباشر لـ mysql_real_escape_string.

لا يوجد مكافئ مباشر

من الناحية الفنية، هناك PDO::quote()، ولكن استخدامه محدود. الحل الحقيقي يكمن في التنفيذ الصحيح للبيانات المعدة.

البيانات المعدة تحمي من الحقن

PDO، عند استخدامها مع البيانات المعدة، تحمي بطبيعتها من حقن MySQL بدون الحاجة إلى الهروب إضافية. تربط البيانات المعدة معلمات الإدخال بالعناصر النائبة، مما يمنع تفسير المدخلات الضارة على أنها أوامر SQL.

مثال: استخدام البيانات المعدة في PDO

يوضح التعليمة البرمجية التالية قاعدة بيانات آمنة الاستعلام باستخدام العبارات المجهزة:

 false,
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
]);
if ($_POST && isset($_POST['color'])) {
    $stmt = $db->prepare("SELECT id, name, color FROM Cars WHERE color = ?");
    $stmt->execute(array($_POST['color']));
    $cars = $stmt->fetchAll(\PDO::FETCH_ASSOC);
    var_dump($cars);
}
?>

فوائد البيانات المعدة

    الهروب التلقائي من المدخلات
  • منع حقن SQL
  • تحسين الأمان و الأداء
اعتبارات إضافية

استخدم charset=utf8 في سمة DSN لمزيد من الأمان.

    تمكين استثناءات PDO (PDO) ::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION) لمعالجة الأخطاء.
  • خذ في الاعتبار التدابير الإضافية عند استخدام إصدارات MySQL القديمة (mysql
  • الاستنتاج

توفر البيانات المعدة في PDO آلية قوية وآمنة لاستعلامات قاعدة البيانات دون الحاجة إلى وظائف مثل mysql_real_escape_string. ومن خلال تبني هذا النهج، يمكنك منع عمليات حقن SQL بشكل فعال والحفاظ على سلامة بياناتك.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3