Php PDO select仅显示一个结果,即使在DB中有更多结果
一般来说,这是我第一次使用PDO,我在一个简单的网站上工作,我完成了我的工作,但在最后的测试中,我发现我的函数只返回一个结果,事实上数据库中有更多的结果。我的代码如下所示:Php PDO select仅显示一个结果,即使在DB中有更多结果,php,mysql,pdo,Php,Mysql,Pdo,一般来说,这是我第一次使用PDO,我在一个简单的网站上工作,我完成了我的工作,但在最后的测试中,我发现我的函数只返回一个结果,事实上数据库中有更多的结果。我的代码如下所示: public function fetchByVinAxnmrs() { $success = false; try{ $con = new PDO( DB_HOST, DB_USER, DB_PASS ); $con->setAttribute( PDO::ATTR_
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;
}
公共函数fetchByVinAxnmrs(){
$success=false;
试一试{
$con=新PDO(DB_主机、DB_用户、DB_通行证);
$con->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_异常);
$sql=“从vin=:vin限制35的axnmrs\U案例中选择*”;
$stmt=$con->prepare($sql);
$stmt->bindValue(“vin”,$this->vin,PDO::PARAM_STR);
$stmt->execute();
而($row=$stmt->fetch()){
回声“;
回显“$row['date_created']”;
回显“$row['axrmrs_id']”;
回显“$row['case_id']”;
回显“$行[“国家]”;
回声';
回声“;
}
}渔获物(豁免$e){
echo$e->getMessage();
echo$con->errorInfo();
}
返回$success;
}
我不知道这是否与PDO或我的SQL有关,但在我看来,它应该会返回更多结果(最多35个ofc)
你们知道怎么了吗
感谢阅读本手册的所有人的帮助:)您正在函数中执行
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
,然后从fetchByVinAxnmrs()
访问该数据。我看PDO没有任何问题。我看到的唯一问题是在
元素中有两个class
属性。echo$stmt->rowCount()
的输出是什么?您是否绝对确定有多行匹配$this->vin
?
$data = array();
while ($row = $stmt->fetch(PDO::FETCH_NAMED, PDO::FETCH_ORI_NEXT)){
$data[] = $row;
}