Quellcode durchsuchen

update database

zjh vor 4 Monaten
Ursprung
Commit
3d3b94fcc9
3 geänderte Dateien mit 49 neuen und 1 gelöschten Zeilen
  1. 2 1
      src/Driver/Entity/Base.php
  2. 17 0
      src/Driver/Entity/Entity.php
  3. 30 0
      src/Driver/TraitDatabase.php

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

@@ -1440,7 +1440,8 @@ class Base {
     final public function rs($page = null, $pageSize = null) {
         $query = $this->createQuery()->orderBy($this->getOrderBy());
         if($page && $pageSize) {
-            $query->limit($page, $pageSize);
+            $start = ((max($page, 1)) - 1) * $pageSize;
+            $query->limit($start, $pageSize);
         }
         return $query->rs($this->prepareTable());
     }

+ 17 - 0
src/Driver/Entity/Entity.php

@@ -38,6 +38,23 @@ class Entity {
         $this->namespace = $namespace;
     }
 
+    /**
+     * 获取表的备注信息
+     *
+     * @param string $table
+     * @return mixed
+     * @throws \Exception
+     */
+    public function getTableComment($table) {
+        $db = $this->db();
+
+        if($db->isError()) {
+            throw new \Exception($db->getError());
+        }
+
+        return $this->getTableComment($table);
+    }
+
     /**
      * 返回表的字段
      *

+ 30 - 0
src/Driver/TraitDatabase.php

@@ -62,6 +62,33 @@ trait TraitDatabase
         return $tables;
     }
 
+    /**
+     * 获取表的备注
+     *
+     * @param string $table 表名
+     * @param string $database 数据库名称
+     * @return array|mixed
+     */
+    public function getTableComment($table, $database = null) {
+        $sql = "
+                    SELECT TABLE_NAME AS table, TABLE_COMMENT AS comment
+                    FROM INFORMATION_SCHEMA.TABLES 
+                    WHERE TABLE_SCHEMA = '{$database}'";
+        if($table != '') {
+            $sql .= " AND TABLE_NAME = '{$table}'";
+        }
+
+        $rs = $this->setQuery($sql);
+        $comment = array();
+        while ($row = $rs->fetch()) {
+            $comment[$row['table_name']] = $row['comment'];
+        }
+
+        if($table != '' && isset($comment[$table])) {
+            return $comment[$table];
+        }
+        return $comment;
+    }
     /**
      * 获取指定数据表的所有字段
      * @param string $table 表名
@@ -196,6 +223,9 @@ trait TraitDatabase
     public function getValueFromBrackets($str)
     {
         preg_match("/(?:\()(.*)(?:\))/i", $str, $matches);
+        if(!$matches) {
+            return $str;
+        }
         $str = $matches[1];
         $a = explode(",", $str);
         for ($i = 0; $i < count($a); $i++) {