peixunguanwang/apps/admin/model/system/DatabaseModel.php
2022-01-24 10:43:35 +08:00

102 lines
2.3 KiB
PHP

<?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;
}
}
}