Isaac Gonzalez
Isaac Gonzalez

Reputation: 91

Can't get array from PDO query

i'm trying to get an array from a SQL query using pdo, what i send to the method it's for example $connection->selectFrom('Person',array(1,2));

when i try to get the results it returns an empty array, here is my code:

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;
    }
}

Upvotes: 0

Views: 957

Answers (2)

Isaac Gonzalez
Isaac Gonzalez

Reputation: 91

Thanks to @Cymbals for your answer, the final code ended up like this:

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;
    }
}

Upvotes: 1

user1415567
user1415567

Reputation: 431

Try this after getting the query, prepare and execute it

      $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;

Upvotes: 0

Related Questions