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

SQL IN क्लॉज के लिए PHP सरणी को फ़ॉर्मेट करना

एक बेहतर तरीका है

आप टिप्पणियों में उल्लेख करते हैं कि आप कोडइग्निटर का उपयोग कर रहे हैं। जब तक आप कुछ असाधारण रूप से जटिल नहीं बना रहे हैं, तब तक कोई व्यावहारिक कारण नहीं है कि जब आपके पास where_in में बनाया गया।

और अगर वह काम नहीं करता है, तो अच्छे पुराने जमाने के हैं escape

ठीक है, तो, आपके पास ज्यादातर लोग कह रहे हैं कि आपको वस्तुओं को उद्धृत करने की आवश्यकता है और आपको यह दे रहे हैं:

function createInClause($arr)
{
    return '\'' . implode( '\', \'', $arr ) . '\'';
}

लेकिन यह वास्तव में पर्याप्त नहीं है यदि आपके पास संदिग्ध इनपुट की संभावना है (जैसे कि '); DROP TABLE STUDENTS; -- . इससे बचाव के लिए, आपको यह सुनिश्चित करना होगा कि आप SQL इंजेक्शन: की जांच करें।

function createInClause($arr)
{
    $tmp = array();
    foreach($arr as $item)
    {
        // this line makes sure you don't risk a sql injection attack
        // $connection is your current connection
        $tmp[] = mysqli_escape_string($connection, $item);
    }
    return '\'' . implode( '\', \'', $tmp ) . '\'';
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL बूलियन फुल-टेक्स्ट सर्च को कैसे ऑप्टिमाइज़ करें? (या इसे किसके साथ बदलना है?) - सी #

  2. x मील त्रिज्या के भीतर अन्य पंक्तियों के लिए mySQL देशांतर और अक्षांश क्वेरी

  3. MySQL में group_concat_max_len के लिए अधिकतम भत्ता क्या है?

  4. MySQL डेटाबेस में चेकबॉक्स मान संग्रहीत करने का सबसे अच्छा तरीका क्या है?

  5. php . का उपयोग करके डेटाबेस में चित्र सम्मिलित करें