心理咨询网
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

DatabaseModel.php 2.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. /**
  3. * @copyright (C)2016-2099 Hnaoyun Inc.
  4. * @author XingMeng
  5. * @email hnxsh@foxmail.com
  6. * @date 2017年11月19日
  7. * 数据库管理模型类,只兼容MySQL数据库
  8. */
  9. namespace app\admin\model\system;
  10. use core\basic\Model;
  11. class DatabaseModel extends Model
  12. {
  13. // 数据库表状态列表
  14. public function getList()
  15. {
  16. return parent::all('SHOW TABLE STATUS');
  17. }
  18. // 获取全部表
  19. public function getTables()
  20. {
  21. $result = parent::all('SHOW TABLES', 2);
  22. foreach ($result as $value) {
  23. $tables[] = $value[0];
  24. }
  25. return $tables;
  26. }
  27. // 获取表字段数量
  28. public function getFieldNum($table)
  29. {
  30. return parent::fields($table);
  31. }
  32. // 获取表字段名
  33. public function getFields($table)
  34. {
  35. $one_data = parent::one("SELECT * FROM " . $table); // 读取数据
  36. $fields = array();
  37. if ($one_data) {
  38. foreach ($one_data as $key => $value) {
  39. $fields[] = "`$key`";
  40. }
  41. }
  42. return $fields;
  43. }
  44. // 获取一条数据
  45. public function getOne($table)
  46. {
  47. return parent::one("SELECT * FROM " . $table);
  48. }
  49. // 获取全部数据
  50. public function getAll($table)
  51. {
  52. return parent::all("SELECT * FROM " . $table, MYSQLI_NUM);
  53. }
  54. // 数据库表结构
  55. public function tableStru($table)
  56. {
  57. $sql = "DROP TABLE IF EXISTS `" . $table . '`;' . PHP_EOL;
  58. $result = parent::one('SHOW CREATE TABLE `' . $table . '`', MYSQLI_ASSOC);
  59. return $sql . $result['Create Table'] . ';' . PHP_EOL . PHP_EOL;
  60. }
  61. // 数据库表优化
  62. public function optimize($tables)
  63. {
  64. return parent::query("OPTIMIZE TABLE $tables");
  65. }
  66. // 数据库表修复
  67. public function repair($tables)
  68. {
  69. return parent::query("REPAIR TABLE $tables");
  70. }
  71. // 锁定数据库表
  72. public function lock($tablename, $op = "WRITE")
  73. {
  74. if (parent::query("lock tables " . $tablename . " " . $op)) {
  75. return true;
  76. } else {
  77. return false;
  78. }
  79. }
  80. // 解锁数据库标
  81. public function unlock()
  82. {
  83. if (parent::query("unlock tables")) {
  84. return true;
  85. } else {
  86. return false;
  87. }
  88. }
  89. }