123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- <?php
- /**
- * @copyright (C)2016-2099 Hnaoyun Inc.
- * @author XingMeng
- * @email hnxsh@foxmail.com
- * @date 2017年11月19日
- * 数据库管理模型类,只兼容MySQL数据库
- */
- namespace app\admin\model\system;
-
- use core\basic\Model;
-
- class DatabaseModel extends Model
- {
-
- // 数据库表状态列表
- public function getList()
- {
- return parent::all('SHOW TABLE STATUS');
- }
-
- // 获取全部表
- public function getTables()
- {
- $result = parent::all('SHOW TABLES', 2);
- foreach ($result as $value) {
- $tables[] = $value[0];
- }
- return $tables;
- }
-
- // 获取表字段数量
- public function getFieldNum($table)
- {
- return parent::fields($table);
- }
-
- // 获取表字段名
- public function getFields($table)
- {
- $one_data = parent::one("SELECT * FROM " . $table); // 读取数据
- $fields = array();
- if ($one_data) {
- foreach ($one_data as $key => $value) {
- $fields[] = "`$key`";
- }
- }
- return $fields;
- }
-
- // 获取一条数据
- public function getOne($table)
- {
- return parent::one("SELECT * FROM " . $table);
- }
-
- // 获取全部数据
- public function getAll($table)
- {
- return parent::all("SELECT * FROM " . $table, MYSQLI_NUM);
- }
-
- // 数据库表结构
- public function tableStru($table)
- {
- $sql = "DROP TABLE IF EXISTS `" . $table . '`;' . PHP_EOL;
- $result = parent::one('SHOW CREATE TABLE `' . $table . '`', MYSQLI_ASSOC);
- return $sql . $result['Create Table'] . ';' . PHP_EOL . PHP_EOL;
- }
-
- // 数据库表优化
- public function optimize($tables)
- {
- return parent::query("OPTIMIZE TABLE $tables");
- }
-
- // 数据库表修复
- public function repair($tables)
- {
- return parent::query("REPAIR TABLE $tables");
- }
-
- // 锁定数据库表
- public function lock($tablename, $op = "WRITE")
- {
- if (parent::query("lock tables " . $tablename . " " . $op)) {
- return true;
- } else {
- return false;
- }
- }
-
- // 解锁数据库标
- public function unlock()
- {
- if (parent::query("unlock tables")) {
- return true;
- } else {
- return false;
- }
- }
- }
|