如何在同一个查询中两次列出数据库行?

时间:2013-04-20 19:11:55

标签: php mysql database

您基本上有两个选项可以使用PHP回显HTML页面中的行:

使用PDO:

$stmt = $pdo->prepare('SELECT * FROM employees WHERE name = :name');

$stmt->execute(array(':name' => $name));

foreach ($stmt as $row) {
    // do something with $row
}

使用mysqli:

$stmt = $dbConnection->prepare('SELECT * FROM employees WHERE name = ?');
$stmt->bind_param('s', $name);

$stmt->execute();

$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
    // do something with $row
}

因此,当你给$ row第一行的数据时,指针移动到查询的下一行。如果您在页面的其他部分需要相同的数据列表,那么正确的做法是什么?

  1. 将指针返回第一行(怎么做?);
  2. 召回查询(并花费更多时间和资源);
  3. 创建一个包含数据的数组(怎么做?);

1 个答案:

答案 0 :(得分:1)

我总是使用一个数组...如果没有别的,你至少会保持代码的高可读性。