2014-09-23 61 views
1

它是我第一次使用PDO,一般我在一个简单的网站上工作,我完成了自己的工作,但在最终测试中我发现我的功能只返回一个resut,尽管数据库中有更多的结果。我的代码如下所示:即使数据库中有更多结果,PDO选择只显示一个结果

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

我没有看到PDO的任何问题。我看到的唯一问题是在''元素中有两个'class'属性。 – Barmar 2014-09-23 12:32:28

+0

echo $ stmt-> rowCount()'的输出是什么? – Manwal 2014-09-23 12:35:26

+1

你确定有多行匹配'$ this-> vin'吗? – Barmar 2014-09-23 12:36:25

回答

0

你正在做你的功能和returning数据都echo。我想知道这将如何发挥。我建议你块

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()