عند معالجة استعلامات قاعدة البيانات في بيثون ، عادة ما تحتاج إلى تضمين متغيرات في بيان الاستعلام. ومع ذلك ، تأكد من العمل بطريقة تمنع أخطاء بناء الجملة أو نقاط الضعف في الأمان.
فكر في رمز Python التالي:
cursor.execute("INSERT INTO table VALUES var1, var2, var3")
في هذا الرمز ، var1
هو عدد صحيح ، var2
و var3
هي سلاسل. ومع ذلك ، عندما يحاول Python تضمين الأسماء VAR1
، var2
، و
cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3))
في هذا الكود المحسّن:
يمثل عنصرًا نائبًا لملء القيمة.
هو tuple تحتوي على القيمة المراد إدراجها.
لاحظ أنه بالنسبة لمعلمة واحدة ، يلزم وجود معلمة واحدة مع فواصل زائدة:
cursor.execute("INSERT INTO table VALUES (%s)", (var1,))
بالإضافة إلى ذلك ، تجنب استخدام مشغل تنسيق السلسلة (٪) لإدراج متغيرات لأنه يمكن أن يسبب نقاط الضعف الأمان ولا يدعمها واجهة برمجة تطبيقات قاعدة البيانات. تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3