0

pdo を使用して SQL クエリから配列を取得しようとしています。たとえば、メソッドに送信するものです。$connection->selectFrom('Person',array(1,2));

結果を取得しようとすると、空の配列が返されます。これが私のコードです:

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

2 に答える 2

1

@Cymbals の回答に感謝します。最終的なコードは次のようになりました。

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;
    }
}
于 2012-06-14T16:38:03.450 に答える
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;
于 2012-06-14T16:09:28.863 に答える