做项目的时候遇到了一个问题,框架生成的sql与放到navicat中执行。和页面显示出来的结果不太一样。
排查了很久,也没有找到问题。
出现问题的sql如下。
$fuck = M(null, null, 'DB_CONFIG1')->table("$tableName as p")
->join('left join 表一 as c on p.PL_CID = c.ID')
->join('left join 表二 as cl on p.PL_CLID = cl.CLID')
->where($where)
->having($having)
->getField($getSelectFields);
这段代码是我写的,出现了问题,同事找到问题之后,大为生气,直接将结果集名字改成了fuck。这也是我写过的最恶心的代码之一。
后来经过同事的提醒,发现了问题。filed("字段1,字段2");最后的结果集是这样子的。
array(1) {
[0] => array(2) {
["字段1"] => 值1,
["字段2"] => 值2
}
}
而getField的结果集是这样子的。
值1 => 值2
还是平时手册没有理解好。
老子最近一直在学mysql的函数式编程。等老子这些学会了,再也不用受这些问题的困扰了。
取数据的逻辑,处理数据的逻辑,以及分配数据的逻辑全部分开。最大限度的降低代码的复杂度。
使得网站的安全性更加可靠。