嗨大家我试图从我的表中获取pdo数据,但最后插入的行永远不会出现在填充表中。当我添加另一行数据然后再次获取数据以填充I然后查看之前未显示的行中的数据,但最后插入的行未显示。
这是我的代码:
<?php
# This program will allow an admin to see email stats for a certain user
$userid = 1; // admin
$email_to = 2 // employee id
$email_by = 2 // employee id
$sql = "SELECT * FROM users WHERE userid = :user_id AND (person = :email_to OR person = :email_by) ORDER BY date DESC";
$stmt = $this->db->prepare($sql);
$stmt->bindparam(":userid", $userid);
$stmt->bindparam(":email_to", $email_to);
$stmt->bindparam(":email_by", $email_by);
$stmt->execute();
if ($stmt->fetch(PDO::FETCH_ASSOC)) {
echo $stmt->rowCount(); // gives me the expected number of rows
while ($data = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo '<tr><td style="text-align:left;">' . $data['email_subject']
. '</td><td>' . $data['email_date'] . '</td><td>'
. $data['email_time'] . '</td></tr>';
}
} else {
echo "Sorry, no record found.";
}
?>
如代码中所述,rowCount()
确实为我提供了预期的行数e.g. 10,
,但在填充的表格结果中,我只看到9 rows
。
先谢谢你们。
答案 0 :(得分:0)
这是因为你无意中跳过if语句的第一行:
if ($stmt->fetch(PDO::FETCH_ASSOC)) { ...
你把它分配给任何东西。你可以使用
do {} while ()
循环。