Witam,
Mam problem z wyciągnięciem odpowiednich danych z bazy danych, otóż mam metodę klasy Database, która nazywa się select, a wygląda następująco:
public function select
($query_string, $values = array(), $count = null){ $stmt = $this->prepare($query_string);
foreach($values as $key => $value){
$stmt->bindValue(':'.$key, $value);
}
$stmt->execute();
if($count === true){
'count' => $stmt->rowCount(),
'data' => $stmt->fetchAll(PDO::FETCH_ASSOC)
);
}
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
No i metodę getProducts umieszczoną w jednym z modeli:
public function getProducts($sortBy = null, $order = null, $pageDelimiter = null, $perPage = null, $where = null){
if($sortBy != null && $pageDelimiter != null && $where != null){
$result = $this->db->select('SELECT * FROM shop_items ORDER BY :sortBy :order WHERE :whereString LIMIT :pageDelimiter , :perPage', array('sortBy' => $sortBy, 'order' => $order, 'whereString' => $where, 'pageDelimiter' => $pageDelimiter, 'perPage' => $perPage)); }
elseif($sortBy != null && $pageDelimiter != null){
$result = $this->db->select('SELECT * FROM shop_items ORDER BY :sortBy :order LIMIT :pageDelimiter , :perPage', array('sortBy' => $sortBy, 'order' => $order, 'pageDelimiter' => $pageDelimiter, 'perPage' => $perPage)); }
elseif($sortBy != null){
$result = $this->db->select('SELECT * FROM shop_items ORDER BY :sortBy :order', array('sortBy' => $sortBy, 'order' => $order)); }
elseif($sortBy == null && $pageDelimiter == null){
$result = $this->db->select('SELECT * FROM shop_items');
}
return $result;
}
Z tego print_r($result) otrzymuję:
PDOStatement Object ( [queryString] => SELECT * FROM shop_items ORDER BY :sortBy :order LIMIT :pageDelimiter , :perPage )
PDOStatement Object ( [queryString] => SELECT * FROM shop_items ORDER BY :sortBy :order LIMIT :pageDelimiter , :perPage )
PDOStatement Object ( [queryString] => SELECT * FROM shop_items ORDER BY :sortBy :order WHERE :whereString LIMIT :pageDelimiter , :perPage )
Czyli wszystko tak jak potrzebuję, jednak po przeskanowaniu zmiennej $result, która przetrzymuje wynik działania metody otrzymuję:
3 puste tablice.
Gdy skopiuję zapytanie wygenerowane przez metodę i użyję ręcznie odstawiając dane, wszystko ładnie działa i nie mogę znaleźć problemu.
Proszę o pomoc

@EDIT
Cytat
Z tego print_r($result) otrzymuję:
Miałem na myśli print_r($stmt);
Ten post edytował Ultear 30.08.2014, 13:33:34