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);
}
?>
अतिरिक्त विचार
निष्कर्ष
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3