我只是试图遍历我的数据库而我只获得第一行。 这是我的数据库PHP:
database.class.php:
<?php
$pdo = new PDO('mysql:host=localhost; dbname=testing070416', 'root', 'root1');
$statement = $pdo->query("SELECT * FROM users");
$rows = $statement->fetch(PDO::FETCH_ASSOC);
var_dump($rows);
?>
index.php :
<?php include ('database.class.php');?>
<table border="1">
<?php foreach ($rows as $value=>$key ){
echo '<tr><th style="color: red;">'.$value.'</th>';
echo '<td>'.$key.'</td></tr>';
}
?>
结果:
应该再循环4个ID。
谢谢!
答案 0 :(得分:3)
使用fetchAll
代替fetch
从
改变$rows = $statement->fetch(PDO::FETCH_ASSOC);
向
$rows = $statement->fetchAll(PDO::FETCH_ASSOC);
然后为您的index.php
<table border="1">
<?php
for($i = 0; $i == count($rows); $i++)
{
foreach($rows[$i] as $value=>$key )
{
echo '<tr><th style="color: red;">'.$value.'</th>';
echo '<td>'.$key.'</td></tr>';
}
}
?>
fetch
和fetchAll
fetch
实际上从结果集中提取下一行。
fetchAll
返回一个包含所有结果集行的数组。
答案 1 :(得分:2)
使用fetchAll代替fetch来获取所有结果。
变化:
$rows = $statement->fetch(PDO::FETCH_ASSOC);
要:
$rows = $statement->fetchAll(PDO::FETCH_ASSOC);