我一直在使用两种方法来呈现数据。
第一个:
function name($id,$name){
return '<div id="'.$id.'">'.$name.'</div>';
}
echo implode($pdo->query("SELECT id,name FROM user")->fetchAll(PDO::FETCH_FUNC,'name'));
第二个:
$users = $pdo->query("SELECT id,name FROM user")->fetchAll(PDO::FETCH_OBJ);
foreach($users as $user){
echo name($user->id,$user->name);
}
我不太明白 PDO::FETCH_FUNC
是如何工作的。我已经尝试弄清楚了。然而,这并没有得到很好的记录。
有人可以解释一下这种获取模式吗?还有,哪一个表现更好?谢谢。
最佳答案
两种方法都是错误的,您必须学习如何使用模板以及如何将业务逻辑与表示逻辑分开。
$users = $pdo->query("SELECT id,name FROM user")->fetchAll(PDO::FETCH_OBJ);
tpl::assign('users', $users);
是业务逻辑部分的所有代码。
然后在模板中
<?php foreach $users as $row): ?>
<div id="<?=$row->id?>"><?=$row->name?></div>
<?php endforeach ?>
坦率地说,您的业务逻辑不应包含任何 HTML,而表示逻辑不应包含任何数据库调用。
关于php - 通过 PDO::FETCH_FUNC 与循环渲染数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23937687/