Forráskód Böngészése

Update:Add or method for db drive

Jinhui Zhu 5 éve
szülő
commit
1efc3efee0
1 módosított fájl, 31 hozzáadás és 0 törlés
  1. 31 0
      src/Driver/Base.php

+ 31 - 0
src/Driver/Base.php

@@ -16,6 +16,7 @@ class Base
         "UPDATE" => "UPDATE %s SET ",
         "DELETE" => "DELETE FROM %s %s",
         "WHERE" => " WHERE %s",
+        "OR" => " `%s` = '%s' ",
         "LIKE" => " `%s` LIKE '%s'",
         "ORDER" => " ORDER BY %s %s",
         "GROUP" => " GROUP BY %s",
@@ -741,6 +742,36 @@ class Base
         }
         return $this;
     }
+    /**
+     * OR条件, 参数为数值
+     */
+    final function or($or, $opt = "AND")
+    {
+        if(empty($or)) return $this;
+        $orCond = array();
+        if(is_array($or)) {
+            foreach($or as $key => $val) {
+                $orCond[] = sprintf($key, $this->setQuote($val));
+            }
+        }
+        if(!empty($this->where)) {
+            $this->where .= " OR (". join(" ". $opt . " ", $orCond) .")";
+        }
+        return $this;
+    }
+    /**
+     *  OR 条件,参数为字符串
+     */
+    final function orStr($or, $opt = "OR") {
+        if(empty($or)) return $this;
+        if(is_array($or)) {
+            $or = join(" ". $opt . " ", $or);
+        }
+        if(!empty($this->where)) {
+            $this->where .= " OR (". $or . ")";
+        }
+        return $this;
+    }
 
     /**
      * 创建插入表的SQL