"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > PDO में mysql_real_escape_string को कैसे बदलें: समाधान के रूप में तैयार कथन?

PDO में mysql_real_escape_string को कैसे बदलें: समाधान के रूप में तैयार कथन?

2024-10-31 को प्रकाशित
ब्राउज़ करें:804

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

PDO में mysql_real_escape_string को बदलना

mysql_* से PDO में संक्रमण की प्रक्रिया में, आपको mysql_real_escape_string के सीधे समकक्ष की अनुपस्थिति के साथ एक दुविधा का सामना करना पड़ सकता है।

कोई प्रत्यक्ष समकक्ष नहीं

तकनीकी रूप से, PDO::quote() है, लेकिन इसका उपयोग सीमित है। सच्चा समाधान तैयार किए गए कथनों के सही कार्यान्वयन में निहित है। अतिरिक्त पलायन की आवश्यकता. तैयार किए गए स्टेटमेंट इनपुट पैरामीटर्स को प्लेसहोल्डर्स से जोड़ते हैं, जिससे दुर्भावनापूर्ण इनपुट को SQL कमांड के रूप में व्याख्या किए जाने से रोका जा सकता है। तैयार कथनों का उपयोग करके क्वेरी करें:

गलत, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ]); यदि ($_POST && isset($_POST['color'])) { $stmt = $db->तैयार करें ("उन कारों से आईडी, नाम, रंग चुनें जहां रंग = ?"); $stmt->निष्पादित(सरणी($_POST['रंग'])); $cars = $stmt->fetchAll(\PDO::FETCH_ASSOC); var_dump($कारें); } ?>

तैयार विवरण के लाभ

इनपुट से स्वचालित निकास

SQL इंजेक्शन की रोकथाम

 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);
}
?>

अतिरिक्त विचार

  • अतिरिक्त सुरक्षा के लिए DSN विशेषता में charset=utf8 का उपयोग करें।
  • PDO अपवाद सक्षम करें (PDO) ::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION) त्रुटि प्रबंधन के लिए।
  • पुराने MySQL संस्करणों (mysql

निष्कर्ष

    पीडीओ में तैयार विवरण mysql_real_escape_string जैसे कार्यों की आवश्यकता के बिना डेटाबेस प्रश्नों के लिए एक मजबूत और सुरक्षित तंत्र प्रदान करते हैं। इस दृष्टिकोण को अपनाकर, आप SQL इंजेक्शन को प्रभावी ढंग से रोक सकते हैं और अपने डेटा की अखंडता को बनाए रख सकते हैं।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3