php - 通过 PDO::FETCH_FUNC 与循环渲染数据

标签 php mysql pdo

我一直在使用两种方法来呈现数据。

第一个:

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/

相关文章:

php - Jquery Ajax获取外部url错误

javascript - 如何根据 Blade 模板中的数据库字段设置所选选项?

php - 从 mysql 切换到 PDO,登录脚本不再有效

php - 使用来自 mysql 的类别的分页不起作用

php - PDO 准备好的语句有多安全

用于构建动态填充模型的 mySQL 查询

php - Laravel 4 Illuminate\Database\Eloquent\MassAssignmentException 错误

php - 使用 JQuery 在 PHP 文件中加载内容

mySQL 根据条件更新两列

php - 重新格式化包含日期信息的mysql字段