我有一个从数据库中获取数据的类。一切正常但结果“剪辑”了第一个结果。 例如,我的数据库中有15个项目,所以通过回显我应该得到的ID
1 2 3 4 ... 13 14 15
但我明白了 2 3 4 ... 13 14 15
该声明正在显示数据,但为什么它缺少第一个结果。
CODE:
private function formatResults($data){
while($row = $data->fetch(\PDO::FETCH_ASSOC)){
echo $row['product_id'].'<br/>';
}
}
public function getAllProducts(){
if($this->databaseConnection()){
$stmt = $this->db_connection->prepare("SELECT * FROM products ORDER BY product_id DESC");
$stmt->execute();
$result = $stmt->fetch(\PDO::FETCH_ASSOC);
$this->formatResults($stmt);
}
}
这是有效的原始功能,(除了错过第一行)。 我也试过只针对一行,看看它是否有所作为,但没有任何东西可以返回。
public function getAllProducts(){
if($this->databaseConnection()){
$stmt = $this->db_connection->prepare("SELECT * FROM products WHERE product_id = ? ORDER BY product_id ASC");
$a =1;
$stmt->bindParam(1,$a,\PDO::PARAM_INT);
$stmt->execute();
while($row = $stmt->fetch(\PDO::FETCH_ASSOC)){
echo $row['product_id'].'<br/>';
}
}
}
我不知道该怎么做,该功能似乎有效。
答案 0 :(得分:1)
因为您正在抓取/丢弃一行:
$result = $stmt->fetch(\PDO::FETCH_ASSOC); // fetch first row
$this->formatResults($stmt); // fetch all the other rows
简单地消除&#34;获取第一行&#34;线。