निम्नलिखित कोड पर विचार करें:
$sql = "INSERT INTO airports (name) VALUES ('$name')";
अब मान लीजिए कि $name
है "Chicago O'Hare"
. जब आप स्ट्रिंग इंटरपोलेशन करते हैं, तो आपको यह SQL कोड मिलता है:
INSERT INTO airports (name) VALUES ('Chicago O'Hare')
जो गलत है, क्योंकि धर्मोपदेश एक SQL उद्धरण चिह्न के रूप में व्याख्या की गई है , और आपकी क्वेरी त्रुटिपूर्ण होगी।
इससे भी बुरी चीजें हो सकती हैं। वास्तव में, SQL इंजेक्शन को MITRE द्वारा 2011 की #1 सबसे खतरनाक सॉफ़्टवेयर त्रुटि का स्थान दिया गया था।
लेकिन आपको वैसे भी स्ट्रिंग इंटरपोलेशन का उपयोग करके कभी भी SQL क्वेरी नहीं बनानी चाहिए। इसके बजाय पैरामीटर वाली क्वेरी का इस्तेमाल करें.
$sql = 'INSERT INTO airports (name) VALUES ($1)';
$result = pg_query_params($db, $sql, array("Chicago O'Hare"));