多次重用PDO结果集

时间:2017-01-03 17:45:41

标签: php

我正在尝试创建一个将在页面上多次显示的选择框,其中的选项由我的SQL查询填充。我能够显示一次但是当我尝试创建第二个相同的选择框时,下拉框中没有选项。这就是我的工作:

 <?php include_once "app/init.php";
      $dataQuery = $db->prepare("
      SELECT column FROM dataType");

  $dataQuery->execute([]);
  $dataTypes = $dataQuery->rowCount() ? $dataQuery : [];
?>

<div>
   <select>
      <?php foreach($dataTypes as $dataType): ?>
          <option>
               <?php echo $dataType['dataType']; ?>
          </option>
      <?php endforeach; ?>
    </select>
 </div>

但是当我尝试添加第二个选择框时,它就是空白。我正在创建一个表,每个行上都有这个选择框供用户选择数据类型,所以我需要多次动态重新创建它。我是php的新手,那么最好的方法是什么呢?

我的init.php显示使用PDO:

<?php session_start();
  $_SESSION['user']=1;
  $db = new PDO ('mysql:dbname=myDB;host=localhost', 'root', 'root');
  if(!isset($_SESSION['user'])) {
     die('You are not signed in');
 };

1 个答案:

答案 0 :(得分:1)

您只能遍历PDO语句一次,因此您应该将结果放在临时数组中。

而不是:

$dataTypes = $dataQuery->rowCount() ? $dataQuery : [];

待办事项

$dataTypes = $dataQuery->fetchAll(\PDO::FETCH_ASSOC);