Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Pembuatan Kueri Dinamis PDO

Anda memerlukan $params separate yang terpisah parameter ke select . Anda metode. Saya mengambil kebebasan menyediakan default untuk parameter metode. Seperti catatan @userXxxx, Anda tidak perlu transaksi hanya untuk melakukan 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);

Catatan:

  • Jika Anda benar-benar ingin, Anda dapat menambahkan parameter metode tambahan untuk menyesuaikan dengan semua fleksibilitas Pernyataan PDO::fetchAll .
  • Saya tidak yakin apa yang Anda maksud tentang $dbFields menjadi "bidang ditambah NILAI". Bisakah Anda menjelaskan?

[Sunting]

Anda mungkin ingin melihat dokumen/contoh untuk PDOStatement::execute , karena sepertinya di situlah kebingungan Anda berakar--khususnya, $input_parameters parameter metode.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. masukkan perintah ditolak di mysql

  2. Keluar dari MySQL tanpa memulai ulang di El Capitan

  3. Dapatkan ID tabel setelah dimasukkan dengan ColdFusion dan MySQL

  4. Apa perilaku untuk operator minus antara dua datetime di MySQL?

  5. Kesalahan String salah saat menambahkan emoji ke database melalui formulir