في عملية الانتقال من 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);
}
?>
فوائد البيانات المعدة
استخدم charset=utf8 في سمة DSN لمزيد من الأمان.
توفر البيانات المعدة في PDO آلية قوية وآمنة لاستعلامات قاعدة البيانات دون الحاجة إلى وظائف مثل mysql_real_escape_string. ومن خلال تبني هذا النهج، يمكنك منع عمليات حقن SQL بشكل فعال والحفاظ على سلامة بياناتك.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3