2012-06-14 4 views
0

я пытаюсь получить массив из запроса SQL с помощью PDO, то, что я посылаю к методу это, например $connection->selectFrom('Person',array(1,2));
Не удается получить массив из PDO запрос

, когда я стараюсь, чтобы получить результаты, которые он возвращает пустой массив, вот мой код:

public function selectFrom($table,$indexes){ 
    try{ 
     $pdo=$this->getPdo(); 
     // HERE I GET ALL THE COLUMN NAMES FROM THE TABLE I RECEIVE 
     $columns = $this->getColumnNames($table); 
     $finals = array(); 
     // IN THIS CICLE I GET THE COLUMNS THAT MATCH THE INDEXES I RECEIVE 
     for($i=0;$i<count($indexes);$i++){ 
      $finals[$i] = $columns[$indexes[$i]]; 
     } 
     // FROM HERE I GET THE QUERY STATEMENT WICH IS SELECT column1,column2 from $table 
     $query = $this->getSelectSQL($table, $finals); 

     // ALL OF THE ABOVE WORKS BUT HERE IT STOPS WORKING 
     $results = $pdo->query($query); 

     return $results; 

    }catch(PDOException $ex){ 
     echo "EXCEPTION ".$ex; 
    } 
} 
+0

Какова ценность '$ query'? –

+0

'$ query = SELECT column1, column2 FROM Person' –

+0

Тогда каков результат этого запроса, когда вы делаете это непосредственно в базе данных? –

ответ

0

Попробуйте после получения запроса, подготовить и выполнить его

 $stmt = $pdo->prepare($query); 
     var_dump($stmt);// if the prepare fails or sql query is messed up it will give false 
     $results = $stmt->execute(); 
     return $results; 
+0

он все еще не работает –

+0

, если вы не получите никакой ошибки, тогда сделайте fetchall к результату и выгрузите результат. вместо возвращаемых результатов выполните var_dump ($ results-> fetchall()); exit(); и посмотрим на результат – user1415567

1

Благодаря @Cymbals для answe r, окончательный код закончился следующим образом:

public function selectFrom($table,$indexes){ 
    try{ 
     $pdo=$this->getPdo(); 

     $columns = $this->getColumnNames($table); 
     $finals = array(); 

     for($i=0;$i<count($indexes);$i++){ 
      $finals[$i] = $columns[$indexes[$i]]; 
     } 

     $query = $this->getSelectSQL($table, $finals); 
     $query.= " WHERE Available = 1"; 

     $stmt = $pdo->prepare($query); 

     $stmt->execute(); 


     $results = $stmt ->fetchAll(); 
     return $results;    

    }catch(PDOException $ex){ 
     echo "EXCEPTION ".$ex; 
    } 
} 
Смежные вопросы