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

Php में Postgresql के साथ श्वेतसूची और तैयार-कथन का उपयोग कैसे करें?

श्वेत सूची

अपने वर्तमान स्वरूप में आपका कोड बहुत खतरनाक है, न केवल आप उपयोगकर्ता को यह तय करने की अनुमति देते हैं कि किन क्षेत्रों का चयन किया जाना चाहिए, बल्कि आप उसे यह भी तय करने की अनुमति देते हैं कि किन तालिकाओं पर पूछताछ करनी है। आपको इन पर श्वेत सूची की जाँच अवश्य करनी चाहिए। उदाहरण:

if($_POST['tableSelected'] == 'acceptable_table1' || $_POST['tableSelected'] == 'acceptable_table2) {
    $table = $_POST['tableSelected']
}

इसी तरह आपको फील्ड सूचियों को मान्य करना चाहिए। लेकिन क्षेत्र सूची सत्यापन जटिल होने जा रहा है क्योंकि आपके क्षेत्र तालिका पर निर्भर होने जा रहे हैं। मेरा सुझाव है कि सरणियाँ बनाएँ और जाँचें कि चयन इसमें है।

$table1_fields = array('col1','col2',...)
$table2_fields = array('col1','col2',...)

तैयार विवरण

जैसा कि आप जानते हैं कि तैयार किए गए बयानों का उपयोग केवल मापदंडों को बांधने के लिए किया जा सकता है। उनका उपयोग टेबल नाम और कॉलम नाम भरने के लिए नहीं किया जा सकता है। इसलिए आपको तैयार बयान और श्वेत सूची दोनों की आवश्यकता है। मैं PDO का उपयोग करने का सुझाव देता हूं . यह कुछ ऐसा दिखाई दे सकता है

$stmt = $dbh->prepare("SELECT {$fieldlist} FROM {$table} where field = ?");
$stmt->execute(array('somevalue'));



  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. त्रुटि:अभिव्यक्ति के रूप में उपयोग की जाने वाली सबक्वेरी द्वारा लौटाई गई एक से अधिक पंक्तियाँ

  3. रेक डीबी:ड्रॉप आउट मेरी पुरानी टेबल को साफ नहीं कर रहा है

  4. एसक्यूएल कमांड को पायथन के ओआरएम में कनवर्ट करना

  5. उन पंक्तियों को खोजें जिनका एक कॉलम में समान मान है और दूसरे कॉलम में अन्य मान हैं?