gpt4 book ai didi

php - 在查询中连接或循环结果

转载 作者:可可西里 更新时间:2023-11-01 07:27:50 25 4
gpt4 key购买 nike

什么会更好? (考虑性能、可维护性、可读性)

伪代码:

SELECT CONCAT('<td>', user_firstname, '</td>') FROM TableA;

$results = SELECT user_firstname FROM TableA
foreach($result as $fname) {
$row .= '<td>'.$fname.'</td>';
}

我觉得在查询中这样做会更好,因为 PHP 不必循环遍历它(假设 TableA 中有大约 20,000 行)。但我也认为,无论谁在未来看到这段代码,都会想知道为什么你会在查询中这样做。

编辑:我问的主要原因是我们在其他地方为这个数据集循环的 php 非常耗费内存。

最佳答案

我肯定会选择返回纯数据并使用 PHP 对其进行操作。毫无疑问,您无论如何都会遍历结果,那么为什么不同时回显两边的标签呢?

然而,这不是我的主要推理 - 如果您最终为多个实例使用相同的数据,您可以缓存并重新使用结果,根据使用要求将返回的数据实现到不同的模板中(如果返回的数据集在每一行上都有特定于 View 的代码)。

此外,无论如何,查询都应该与创建 View 的代码分开,因此在更新最终标记时,修改创建标记的 PHP(与其他标记在同一文件中)会比修改更容易查找查询以更改标记。 echo '<th>'.$field.'</th>';它的意图也比 echo $field; 更清楚.

归根结底,这取决于个人喜好,但作为 MVC 结构的良好实践以及通常干净且可维护的代码,我肯定会投票支持用 PHP 完成标记

长话短说

  • 使用 PHP - 无论如何你都可能会循环使用它
  • echo '<th>'.$field.'</th>';echo $field; 的意图更清晰(更具可读性)
  • 如果要在其他地方使用数据,您可以缓存单个查询以使用不同的标记模板重复使用,而不是每次都添加不同的包装标签进行多个查询
  • 为了易读性,最好将数据库留给数据检索(因此出现了 MVC 运动),然后可以使用更适合该工作的语言(例如 PHP)来操作这些数据

关于php - 在查询中连接或循环结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18316221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com