//budowanie zapytania public function BuildSearchQuery($way='AND') { $query = 'SELECT * FROM `'.$this->tablename.'` WHERE '; for($i=0;$i<$this->howcolumn;$i++) { $query .= '`'.$this->column[$i].'` = :'.$this->column[$i].' '.$way.' '; } if($way=='AND') elseif($way=='LIKE') $this->query = $query; $this->way = $way; } //wykonanie zadania public function Search($option='one') { $search = $db -> prepare("$this->query"); if($this->way=='AND') { for($i=0;$i<$this->howcolumn;$i++) { $search -> bindValue($this->column[$i],$this->searchvar[$i], PDO::PARAM_STR); } } elseif($this->way=='LIKE') { for($i=0;$i<$this->howcolumn;$i++) { $search -> bindValue($this->column[$i],'%'.$this->searchvar[$i].'%', PDO::PARAM_STR); } } $search -> execute(); if($option=='one') { $row = $search -> fetch(PDO::FETCH_ASSOC); } elseif($option=='multi') { $row = $search -> fetchAll(PDO::FETCH_ASSOC); } $this -> find = $row; } } ?>
A plik gdzie się odwołuję ma:
$request -> AddTablename('users'); $request -> BuildSearchQuery('LIKE'); $request -> Search('multi');
print_r zwraca tylko Array(). Przy tworzeniu bindValue, searchvar[$i], w tym przypadku 0, ma wartość 4. Więc względnie powinno być %4%, więc powinno wyszukać. A jednak zwraca pustą tablice...