while循环和PDO语句

Dav*_*vid 3 php pdo while-loop

我在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()){ ...
Run Code Online (Sandbox Code Playgroud)

输出的结果总是缺少其中一行,因此用户收到的最新私人消息永远不会显示.我有一个通知器告诉用户他们有多少新消息,这些消息正确计数(它表明他们有一条消息比实际消息列表输出多一个).我无法使用谷歌找到答案,这让我发疯.这是我80年代早期BASIC早期以来第一次尝试使用任何语言进行编程,因此我花了所有时间阅读有关事情的内容,但找不到任何可以帮助我解决这个问题.谁能告诉我哪里出错了?谢谢!

rai*_*ace 5

删除行:

$row = $stmt->fetch();
Run Code Online (Sandbox Code Playgroud)

它把第一行放在里面 $row

然后你做的时候:

while($row = $stmt->fetch()){ ...
Run Code Online (Sandbox Code Playgroud)

它开始从第二行开始取出,你获取的第一行丢失,这就是为什么你总是只丢失一行.