PHP के हाल के संस्करणों के लिए बंदरमैट्रिक्स उत्तर गलत है (मैंने इसे 7.3 पर परीक्षण किया)। mysqli_real_escape_string()
केवल कुछ पात्रों से बच निकलता है। यहां एक फ़ंक्शन है जो इसे उलट देगा:
function reverse_mysqli_real_escape_string($str) {
return strtr($str, [
'\0' => "\x00",
'\n' => "\n",
'\r' => "\r",
'\\\\' => "\\",
"\'" => "'",
'\"' => '"',
'\Z' => "\x1a"
]);
}
ठीक से लिखे गए आवेदन में, इस फ़ंक्शन की शायद ही कभी आवश्यकता होनी चाहिए। किसी भी एस्केपिंग को स्वचालित रूप से संभालने के लिए आपको पैरामीटर बाध्यकारी के साथ पीडीओ का उपयोग करना चाहिए। मैंने इस फ़ंक्शन को केवल कुछ विरासत कोड को संभालने के लिए बनाया था जो इनपुट पर सब कुछ से बच रहा था और मुझे मूल डेटा पर वापस जाने के लिए एक रास्ता चाहिए था।