我有一个 php 对象方法,可以使用以下 MySQL 查询加载对象“A”:
SELECT A.foo, A.bar...
我有另一个名为 B 的 php 对象,它使用对象 A 中的 MySQL 字段:
SELECT A.foo, A.bar...
B.abc, B.xyz
为了防止代码重复,创建一个数组(或对象)来存储对象 A 的 MySQL 字段名称,以便该数组可以在对象 A 和对象 B 中使用,这是否是一个好习惯,如下所示:
对象A MySQL加载:
SELECT '.implode(',', $mysql_a_fields).' '...
对象 B MySQL 加载:
SELECT '.implode(',', $mysql_a_fields).',
B.abc, B.xyz
或者是代码异味?
目标是防止在使用这些 SQL 字段的查询中重复某些 SQL 字段。例如,如果对象 A 有一个 mysql 日期字段,我希望在使用该日期字段的所有请求中以相同的方式进行格式化,是否有任何设计模式可以防止在所有请求中重复 DATE_FORMAT(date_field)?/p>
谢谢
最佳答案
关于字段名称数组。我不会这样做。如果您需要以这种方式编写所有选择,那么就编写它们。我对你的类/项目结构了解不够,无法判断这是否有意义。
为了帮助您解决日期格式问题(嗯,这并不是真正的问题,不是吗),我认为您有两种选择: 1.原样从数据库中获取日期字段,并用PHP进行转换。 (使用可从任何地方访问的辅助类来执行此操作。) 2. 创建一个存储过程来为您转换格式并在 SELECT 查询中使用它。
关于php - 将 MySQL 查询字段作为数组处理是否有意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40890244/