|
|
@@ -2013,6 +2013,27 @@ class Fullorderexcel extends Start_Controller {
|
|
|
public function _datahz($where,$field,$order_str,$sj,$extra){
|
|
|
$goods_sku_list = $extra['goods_sku_list'] ;
|
|
|
$typeclass = $extra['typeclass'];
|
|
|
+ //过滤掉表中不存在的字段,防止SQL报错
|
|
|
+ if($field != '*' && !empty($field)){
|
|
|
+ $table_fields = $this->$sj->fields;
|
|
|
+ if(!empty($table_fields)){
|
|
|
+ $field_arr = explode(',', $field);
|
|
|
+ $field_arr = array_map('trim', $field_arr);
|
|
|
+ $valid_fields = array();
|
|
|
+ foreach($field_arr as $f){
|
|
|
+ //处理字段别名的情况,如 "field AS alias"
|
|
|
+ $real_field = trim(stristr($f, ' AS ', true) ?: $f);
|
|
|
+ //去掉表前缀,如 "table.field"
|
|
|
+ if(strpos($real_field, '.') !== false){
|
|
|
+ $real_field = trim(substr(strrchr($real_field, '.'), 1));
|
|
|
+ }
|
|
|
+ if(in_array($real_field, $table_fields)){
|
|
|
+ $valid_fields[] = $f;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $field = !empty($valid_fields) ? implode(',', $valid_fields) : '*';
|
|
|
+ }
|
|
|
+ }
|
|
|
//取得信息列表
|
|
|
$info_list = $this->$sj->find_all($where,$field,$order_str);
|
|
|
//格式化数据
|