我正在尝试从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”而不是“&lt;:参数”,它可以正常工作。我做错了什么?
我将其更新为现在的样子:
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.
答案 0 :(得分:0)
$ knappar - &gt; fetch(PDO :: FETCH_ASSOC)仅获取结果集的下一行。使用fetchAll获取整个结果集。
然后,您可以使用foreach迭代返回的数组。
当然,我不确定为什么它不会返回任何内容而不仅仅是第一行但是试一试。