<sub id="PnROS"></sub>

                  query聚合函数正则需改进

                  浏览:602 发布日期:2020/01/21
                  5.0.0 - 致命 - 未处理
                  由于程序所用版本为5.0.20后经业务需要更新至5.0.24版本,产生以下错误:[0] Exception in Query.php line 574
                  not support data:goods_id,batch_no
                  后经排查发现以下代码正则表达式中缺少“\,”。
                  修改前:public function aggregate($aggregate, $field, $force = false)
                      {
                          if (0 === stripos($field, 'DISTINCT ')) {
                              list($distinct, $field) = explode(' ', $field);
                          }

                          if (!preg_match('/^[\w\.\+\-\*]+$/', $field)) {
                              throw new Exception('not support data:' . $field);
                          }

                          $result = $this->value($aggregate . '(' . (!empty($distinct) ? 'DISTINCT ' : '') . $field . ') AS tp_' . strtolower($aggregate), 0, $force);

                          return $result;
                      }
                  修改后:public function aggregate($aggregate, $field, $force = false)
                      {
                          if (0 === stripos($field, 'DISTINCT ')) {
                              list($distinct, $field) = explode(' ', $field);
                          }

                          if (!preg_match('/^[\w\.\+\-\,\*]+$/', $field)) {
                              throw new Exception('not support data:' . $field);
                          }

                          $result = $this->value($aggregate . '(' . (!empty($distinct) ? 'DISTINCT ' : '') . $field . ') AS tp_' . strtolower($aggregate), 0, $force);

                          return $result;
                      }
                  评论(
                  后面还有条评论,点击查看>>