而循环和PDO语句


while loop and PDO statements

在PDO语句后有一个while循环。我的代码在下面。

 $query = "SELECT * FROM private_messages WHERE to_id = :my_id AND to_email = :email AND    recipient_delete='0' ORDER BY time_sent DESC";
 $stmt = $dbo->prepare($query);
 $stmt->execute(array(":my_id" => $my_id, ":email" => $email));
 $row = $stmt->fetch();
 while($row = $stmt->fetch()){ ...

输出的结果总是缺少其中一行,因此用户收到的最新私人消息永远不会显示。我有一个通知器,它告诉用户他们有多少新消息,这是正确计数的(它表明他们比实际消息列表输出多了一条消息)。我用谷歌找不到答案,这让我抓狂。这是我自80年代BASIC早期以来第一次尝试用任何语言编程,所以我把所有的时间都花在了阅读上,但找不到任何东西来帮助我解决这个问题。有人能告诉我哪里出了问题吗?谢谢

删除行:

$row = $stmt->fetch();

它将第一行放入$row

然后当你这样做:

while($row = $stmt->fetch()){ ...

它从第二行开始提取,而您提取的第一行会丢失,这就是为什么您总是只丢失一行。