PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

pg_escape_string वास्तव में क्या करता है?

निम्नलिखित कोड पर विचार करें:

$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"));


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डिलीट कॉलम मौजूद नहीं है

  2. पोस्टग्रेएसक्यूएल 13:LIMIT … TIES के साथ

  3. PostgreSQL में ऐरे कैसे बनाएं

  4. PostgreSQL में INTERSECT कैसे काम करता है

  5. PSQLException:वर्तमान लेनदेन निरस्त कर दिया गया है, लेनदेन ब्लॉक के अंत तक आदेशों को अनदेखा कर दिया गया है