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.