data_format($data['addons'],$suffix); $column = "id"; $condition .="`f_sn` = :f_sn"; $params[':f_sn'] = $f_sn; $condition .=" AND "; $condition .="`s_sn` = :s_sn"; $params[':s_sn'] = $s_sn; $condition .=" AND "; $condition .="`siteid` = :siteid"; $params[':siteid'] = $siteId; $condition .=" AND "; $condition .="`platid` = :platid"; $params[':platid'] = $platid; $condition .=" AND "; $condition .="`uniacid` = :uniacid"; $params[':uniacid'] = $uniacid; $condition .=" AND "; $condition .="`shopid` = :shopid"; $params[':shopid'] = $shopid; $i = 0; $temp = array(); $temp['keys']=array(); $temp['titles']=array(); $temp_condition = $condition; foreach($settingData as $v_k => $value){ $i++; $record = array(); $_temp_condition = ''; $condition = ''; $condition .=" AND "; $condition .="`setfor` = :setfor"; $params[':setfor'] = $value['setfor']; if(!isset($temp['keys'][$value['setfor']])) { $temp['keys'][$value['setfor']] = []; } if(!isset($temp['titles'][$value['setfor']])) { $temp['titles'][$value['setfor']] = []; } //170702补充——增强修复参数title键为数字时的保存命令 if(is_numeric($value['title'])){ $_temp_titles = $temp['titles'][$value['setfor']]; if(count($_temp_titles)==0){ $record['deleted'] = 1; $record['updatetime'] = $_FM['timestamp']; $_temp_condition = $temp_condition.$condition; unset($params[':key']); $result = fmFunc_pdo_yii_update($connection, $tableName, $record, $_temp_condition, $params); } array_push($temp['titles'][$value['setfor']],$value['title']); } $condition .=" AND "; $condition .="`title` = :title"; $params[':title'] = $value['title']; if(!isset($temp['keys'][$value['setfor']][$value['title']])) { $temp['keys'][$value['setfor']][$value['title']] = []; } //170419补充——针对参数key键为数字的情况(判定其父级数组需完全被该次所传入之的参数数组替代),因为要删除掉无关键(设置deleted为1) //170501补充——增强修复参数key键为数字时的保存命令 if(is_numeric($value['key'])){ $_temp_keys = $temp['keys'][$value['setfor']][$value['title']]; if(count($_temp_keys)==0){ $record['deleted'] = 1; $record['updatetime'] = $_FM['timestamp']; $_temp_condition = $temp_condition.$condition; unset($params[':key']); $result = fmFunc_pdo_yii_update($connection, $tableName, $record, $_temp_condition, $params); } array_push($temp['keys'][$value['setfor']][$value['title']],$value['key']); } $condition .=" AND "; $condition .="`key` = :key"; $params[':key'] = $value['key']; $condition = $temp_condition.$condition; $id = fmFunc_pdo_yii_fetchcolumn($connection, $tableName, $column, $condition, $params); $record['value'] = $value['value']; //170722 补充-value键值超过mysql的text最大长度65535时,改为使用文件存储的方式 if(isset($value['value']{65535})){ $filename = $siteId.'/'.$uniacid.'/'.$platid.'_'.$shopid.'_'.$f_sn.'_'.$s_sn.'_'.$suffix.'_'.$value['setfor'].'_'.$value['title'].'_'.$value['key']; fmFunc_file_dataWrite($filename,$value['value'],$uri=null,$origin_cache_key=null); $record['value'] = $filename.'.php'; } if($id){ $record['deleted'] = 0; $record['updatetime'] = $_FM['timestamp']; fmFunc_pdo_yii_update($connection, $tableName, $record, $condition, $params); }else{ $record['setfor'] = $value['setfor']; $record['title'] = $value['title']; $record['key'] = $value['key']; $record['f_sn'] = $f_sn; $record['s_sn'] = $s_sn; $record['sn'] = getMillisecond()*10; $record['sn'] = intval($record['sn']); $record['siteid'] = $siteId; $record['platid'] = $platid; $record['uniacid'] = $uniacid; $record['shopid'] = $shopid; $record['partnerid'] = $partnerid; $record['displayorder'] = isset($data['displayorder']) ? $data['displayorder'] : 0; $record['status'] = isset($data['status']) ? $data['status'] : 1; $record['statuscode'] = isset($data['statuscode']) ? $data['statuscode'] : 64; $record['deleted'] = 0; $record['createtime'] = $_FM['timestamp']; $record['updatetime'] = $_FM['timestamp']; fmFunc_pdo_yii_insert($connection, $tableName, $record); } }