PHP pdo fetch只返回1个结果

时间:2014-12-27 21:03:34

标签: php html mysql pdo

pdo功能:

        public function selectByCatagory($catagory,$column,$table,$id){
        $query =  $this->_pdo->prepare('SELECT ' .$column. ' FROM ' .$table. ' WHERE   catagory=:catagory');
        $query->bindParam(':catagory', $catagory);
        $query->execute();
        $result = $query->fetch();
        return $result[$id];
    }

功能用途:

            for($i = 0; $i < 11; $i++){
        $title = database::getInstance()->selectByCatagory($catagory, 'subject' , 'web_forum' ,$i);        
        echo $title

             }

获取偏移量1时出现问题。它表示没有偏移1但是当我在我的数据库程序中运行它时还有9个其他结果。

1 个答案:

答案 0 :(得分:0)

fetch确实只返回结果集中的一行。如果你想要所有这些,你必须使用fetchAll或自己迭代结果集:

public function selectByCatagory($catagory,$column,$table,$id){
    $query =  $this->_pdo->prepare('SELECT ' .$column. ' FROM ' .$table. ' WHERE   catagory=:catagory');
    $query->bindParam(':catagory', $catagory);
    $query->execute();

    $retVal = array();
    while ($result = $query->fetch()) {
        array_push($retVal, $result[$id]);
    }
    return $retVal;
}