Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tòa nhà truy vấn động PDO

Bạn sẽ cần một $params riêng tham số select của bạn phương pháp. Tôi đã tự do cung cấp giá trị mặc định cho các tham số phương thức. Giống như ghi chú @userXxxx, bạn không cần giao dịch chỉ để thực hiện 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);

Ghi chú:

  • Nếu bạn thực sự muốn, bạn có thể thêm các tham số phương thức bổ sung để phù hợp với tất cả tính linh hoạt của PDOStatement ::fetchAll .
  • Tôi không chắc ý của bạn về $dbFields là "trường cộng với GIÁ TRỊ". Bạn có thể giải thích không?

[Chỉnh sửa]

Bạn có thể muốn xem các tài liệu / ví dụ cho PDOStatement ::execute , vì đó dường như là nơi bắt nguồn sự nhầm lẫn của bạn - cụ thể là $input_parameters tham số phương thức.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo một bảng tạm thời với ngày tháng

  2. MySQL CONCAT trả về NULL nếu bất kỳ trường nào chứa NULL

  3. Xử lý lỗi quy trình lưu trữ MySQL

  4. Tại sao các chữ cái tiếng Ả Rập không được chèn vào cơ sở dữ liệu?

  5. Cách triển khai máy chủ Percona cho MySQL để có tính khả dụng cao