1

我正在尝试从 mySQL 数据库中检索记录,但没有选择任何内容。我正在使用以下 php 函数:

function printButton($conn){
$your_variable = 1;
$knappar = $conn->prepare('SELECT * FROM knappar WHERE pid  < :parameter');
$knappar->bindParam(':parameter', $your_variable, PDO::PARAM_INT);
$knappar->execute();

            //Loops boxes
          $count = 1;
          while ($row = $knappar->fetch(PDO::FETCH_ASSOC)) {
            echo "<a href='#'><div class='box' id='div_item".$count."'>";
            echo $row['header'];
            echo $row['id'];

            echo "</div></a>";
            $count = $count + 1;
            }

}

如果我更改“WHERE pid = 1”而不是“<:parameter”,它工作正常。我究竟做错了什么?

我将其更新为现在的样子:

function printButton($conn){
$your_variable = 1;
$knappar = $conn->prepare('SELECT header FROM knappar WHERE pid < :parameter');
$knappar->bindParam(':parameter', $your_variable, PDO::PARAM_INT);
$knappar->execute();

            //Loops boxes
      $results = $knappar -> fetchAll(PDO::FETCH_ASSOC);
      foreach ($results as $row){

      echo $row['header'];
      echo '<br />';

      }

}

有了上面的例子,仍然没有输出。pid 值在数据库中是 int(11) 并且所有行的值都是 1。

4

1 回答 1

0

$knappar -> fetch(PDO::FETCH_ASSOC) 只获取结果集的下一行。使用 fetchAll 获取整个结果集。

然后,您可以使用 foreach 遍历返回的数组。

当然,我不知道为什么它只返回第一行,但试一试。

于 2012-10-09T12:17:26.793 回答