zjh преди 2 месеца
родител
ревизия
cc8e0e4a8f
променени са 2 файла, в които са добавени 6 реда и са изтрити 7 реда
  1. 2 2
      src/Driver/Entity/Base.php
  2. 4 5
      src/Driver/Trait/SQL.php

+ 2 - 2
src/Driver/Entity/Base.php

@@ -1977,8 +1977,8 @@ class Base {
      * @return bool
      */
     public function initPages(&$data, $count, $page, $pageSize = 20, $pagination = 5) {
-        $page = max(1, $page);
-        $pageSize = max(1, $pageSize);
+        $page = intval(max(1, $page));
+        $pageSize = intval(max(1, $pageSize));
         $data['start'] = 0;
         $data['pages'] = array('total' => 0, 'currentPage' => 0, 'totalPage' => 0);
         $data['pages']['total'] = (int) ($count ? $count : 0);

+ 4 - 5
src/Driver/Trait/SQL.php

@@ -682,12 +682,11 @@ trait SQL
         }
         $this->handleError(!is_string($field), '字段名必须为字符串,获取到的为'. print_r($field, true));
         // 如果有 incr decr
-        if(strlen($field) > 5) {
-            $opt = substr($field, -5);
-            if(in_array($opt, [':incr', ':decr'])) {
+        if(strlen($field) > 5 && strpos($field, ':') !== false) {
+            $opt = substr($field, strpos($field, ':'));
+            if(in_array($opt, array(':incr', ':decr', ':plus', ':minus'))) {
                 $field = $this->formatField(substr($field, 0, -5));
-
-                if($opt == ':incr') {
+                if(in_array($opt,  array(':incr', ':plus'))) {
                     $val = $this->handleFieldAlias($field) .'='. $this->handleFieldAlias($field) .'+'. $value;
                 }else{
                     $val = $this->handleFieldAlias($field) .'='. $this->handleFieldAlias($field) .'-'. $value;