这是我第一次使用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)
你们知道怎么了吗?
感谢所有阅读它的人的帮助:)
您在函数中同时执行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()
访问它。