即使DB中有更多结果,PDO选择也只显示一个结果

时间:2014-09-23 12:28:57

标签: php mysql pdo

我第一次使用PDO一般我正在一个简单的网站上工作,我完成了我的工作,但在最后的测试中,我发现我的功能只返回一个resut,在数据库中有更多结果的事实。我的代码如下所示:

public function fetchByVinAxnmrs() {
    $success = false;
    try{
        $con = new PDO( DB_HOST, DB_USER, DB_PASS ); 
        $con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
        $sql = "SELECT * FROM axnmrs_cases WHERE vin = :vin LIMIT 35";
        $stmt = $con->prepare( $sql );
        $stmt->bindValue( "vin", $this->vin, PDO::PARAM_STR );
        $stmt->execute();
        while ($row = $stmt->fetch()){
            echo "<tr>";
            echo "<td>".$row['date_created']."</td>";
            echo "<td>".$row['axrmrs_id']."</td>";
            echo "<td>".$row['case_id']."</td>";
            echo "<td>".$row['country']."</td>";
            echo '<td><a class="iframe" href="detail.php?id=' . $row['id'] . '&caseid='.$row['case_id'].'" class>details</a></td>';
            echo "</tr>";
        }
    }catch(PDOExeption $e){
        echo $e->getMessage();
        echo $con->errorInfo();
    }

    return $success; 
}    

我不知道它是PDO的东西,还是我的SQL,但在我看来它应该会给出更多的结果(最多35 ofc)

任何想法的人都错了吗?

感谢所有读过它的人的帮助:)

1 个答案:

答案 0 :(得分:0)

您在功能和echo数据中同时执行returning。我想知道这将如何发挥作用。我建议你改变块

while ($row = $stmt->fetch()){
            echo "<tr>";
            echo "<td>".$row['date_created']."</td>";
            echo "<td>".$row['axrmrs_id']."</td>";
            echo "<td>".$row['case_id']."</td>";
            echo "<td>".$row['country']."</td>";
            echo '<td><a class="iframe" href="detail.php?id=' . $row['id'] . '&caseid='.$row['case_id'].'" class>details</a></td>';
            echo "</tr>";
        }

类似于:

$data = array();
while ($row = $stmt->fetch(PDO::FETCH_NAMED, PDO::FETCH_ORI_NEXT)){
   $data[] = $row;
}

然后您返回$data,然后从fetchByVinAxnmrs()访问该内容。