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

पीडीओ गतिशील क्वेरी बिल्डिंग

आपको एक अलग $params . की आवश्यकता होगी आपके select . के लिए पैरामीटर तरीका। मैंने विधि मापदंडों के लिए चूक प्रदान करने की स्वतंत्रता ली। @userXxxx नोटों की तरह, आपको केवल select . करने के लिए लेन-देन की आवश्यकता नहीं है ।

<?php

class db {

    public $connection; //PDO
    public $dbFields; // This is an array of the fields plus VALUES

    public function select($where = '1', $params = array(), $limit = '', $fetchStyle = PDO::FETCH_ASSOC) { //fetchArgs, etc
        $fields = implode(', ', $this->dbFields);

        //create query
        $query = "SELECT $fields FROM {$this->table} WHERE $where $limit";

        //prepare statement
        $stmt = $this->connection->query($query);

        $stmt->execute($params);

        return $stmt->fetchAll($fetchStyle);
    }

    //...
}


$where = 'userId IN(:userId1, :userId2)';
$params = array(':userId1' => 111, ':userId2' => 2222);
$db->select($where, $params);

नोट:

  • यदि आप वास्तव में चाहते हैं, तो आप पीडीओस्टेटमेंट::fetchAll
  • मुझे नहीं पता कि $dbFields के बारे में आपका क्या मतलब है "फ़ील्ड प्लस VALUES" होने के नाते। क्या आप समझा सकते हैं?

[संपादित करें]

हो सकता है कि आप PDOStatement::execute के डॉक्स/उदाहरणों पर एक नज़र डालना चाहें , क्योंकि ऐसा लग रहा था कि आपका भ्रम वहीं है - विशेष रूप से, $input_parameters विधि पैरामीटर।



  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. MySQL क्वेरी में IF कंडीशन के साथ गिनें

  3. MySQL:क्या MySQL तालिका में प्रत्येक रिकॉर्ड के लिए आंतरिक रिकॉर्ड पहचानकर्ता जैसा कुछ है?

  4. चेतावनी:mysql_connect():[2002] ऐसी कोई फ़ाइल या निर्देशिका नहीं है (यूनिक्स के माध्यम से कनेक्ट करने का प्रयास कर रहा है:///tmp/mysql.sock) में

  5. MySQL:st_geometryfromtext function को कार्य करने के लिए प्रदान किया गया अमान्य GIS डेटा