我正在尝试从我的网站上的表中获取所有记录,我有以下内容
$sth = $conn->prepare("SELECT * FROM directory WHERE user_active != ''");
$sth->execute();
/* Exercise PDOStatement::fetch styles */
$result = $sth->fetch(PDO::FETCH_ASSOC);
foreach ($sth->fetchAll(PDO::FETCH_ASSOC) as $result) {
echo $result[First_Name];
}
Run Code Online (Sandbox Code Playgroud)
只有它没有返回所有记录,只有我的第一个,任何人都能看到我出错的地方吗?
xda*_*azz 11
你需要使用一个循环:
while ($result = $sth->fetch(PDO::FETCH_ASSOC)) {
echo $result[First_Name];
echo ' ' . $result[Surname];
}
Run Code Online (Sandbox Code Playgroud)
或者你可以使用fetchAll方法:
foreach ($sth->fetchAll(PDO::FETCH_ASSOC) as $result) {
echo $result[First_Name];
echo ' ' . $result[Surname];
}
Run Code Online (Sandbox Code Playgroud)
注意:如果First_Name和Surname不是常量,那么您应该使用字符串作为键名.
$result['First_Name'] 和 $result['Surname']
好吧,你只打$sth->fetch一次电话.你需要循环结果.
while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
echo $row['First_Name'] . ' ' . $row['Surname'] . "\n";
}
Run Code Online (Sandbox Code Playgroud)
也不要在没有大括号的情况下调用数组字符串索引 这样PHP检查密钥是否为CONSTANT,然后将其强制转换为字符串.这只是不好的做法,可能会导致意想不到的行为.
如果只返回一行,则数据库(或结果集)中可能只有一行.向我们展示更多代码!
| 归档时间: |
|
| 查看次数: |
8971 次 |
| 最近记录: |