आपको एक अलग $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
विधि पैरामीटर।