Je hebt een aparte $params
. nodig parameter naar uw select
methode. Ik ben zo vrij geweest om standaardwaarden voor de methodeparameters op te geven. Net als @userXxxx-opmerkingen, heb je geen transactie nodig om een SELECT
te doen .
<?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);
Opmerkingen:
- Als je echt wilt, kun je extra methodeparameters toevoegen om te passen bij alle flexibiliteit van PDOStatement::fetchAll .
- Ik weet niet zeker wat je bedoelt met
$dbFields
zijnde "velden plus WAARDEN". Kun je het uitleggen?
[Bewerken]
Misschien wil je de documenten/voorbeelden bekijken voor PDOStatement::execute
, aangezien daar uw verwarring leek te zijn geworteld - met name de $input_parameters
methode parameter.