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

एसक्यूएल इंजेक्शन को रोकने के लिए पैरामीटरयुक्त एसक्यूएल क्वेरी कैसे लिखें?

मैं एक Knex.js उपयोगकर्ता नहीं हूं, लेकिन दस्तावेज़ों को देखकर ऐसा लगता है कि Knex का विधेय को परिभाषित करने के लिए JavaScript ऑब्जेक्ट सिंटैक्स का उपयोग यह है कि यह कैसे पैरामीटरकरण प्राप्त करता है।

हालाँकि, जब आप बिल्ट-इन फ़ंक्शंस का उपयोग कर रहे हैं, तो आपको whereRaw . का उपयोग करने की आवश्यकता है ।

दस्तावेज़ों को देख रहे हैं ( http://knexjs.org/#Builder-whereRaw ) और ( http://knexjs.org/#Raw-Bindings ) मुझे लगता है कि आप यह करना चाहते हैं:

.whereRaw('question LIKE :term OR note LIKE :term OR user_name LIKE :term', { term: '%' + term + '%' ] } )

Knex में orWhereRaw नहीं है , इसलिए यदि आप विधेय को तार्किक रूप से अलग करना चाहते हैं तो आपको लॉन्गहैंड संस्करण का उपयोग करना चाहिए:

term = '%' + term + '%';

.orWhere( knex.raw( 'question  LIKE ?', [ term ] ) )
.orWhere( knex.raw( 'note      LIKE ?', [ term ] ) )
.orWhere( knex.raw( 'user_name LIKE ?', [ term ] ) )

नोट ? स्थितीय मापदंडों के लिए है, और :term नामित पैरामीटर के लिए है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. tomcat jndi कनेक्शन को पोस्टग्रेस्क्ल को प्रमाण पत्र प्रदान करना

  2. डायनेमिक SQL का उपयोग करके समग्र चर फ़ील्ड का मान कैसे सेट करें

  3. Postgresql में अंडरस्कोर से कैसे बचें

  4. पोस्टग्रेज में दो टेबल की तुलना कैसे करें

  5. एटलसियन बिटबकेट के साथ PostgreSQL संस्करण नियंत्रण