Model.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. <?php
  2. namespace daswork;
  3. // use daswork\Connect;
  4. use mysqli;
  5. use daswork\lib\Config;
  6. class Model
  7. {
  8. private $mydb;
  9. protected $tablename;
  10. public function __construct()
  11. {
  12. // $content = new Connect(); 后期这得改成多次model 用一个连接
  13. $db = Config::get('db');
  14. $mydb = new mysqli($db['host'], $db['username'], $db['pwd'], $db['dbname']);
  15. if ($mydb->connect_error) {
  16. throw new \Exception('Connect Error (' . $mydb->connect_errno . ') '. $mydb->connect_error);
  17. } else {
  18. // echo "Opened database successfully\n";
  19. $this->connect = $mydb;
  20. }
  21. }
  22. /**
  23. * 执行sql
  24. * @param string $sql
  25. * @return mixd $res
  26. */
  27. public function query($sql)
  28. {
  29. $res = $this->mydb->query($sql);
  30. return $res;
  31. }
  32. public function lastInsertRowID()
  33. {
  34. $res = $this->mydb->insert_id;
  35. return $res;
  36. }
  37. public function lastErrorMsg()
  38. {
  39. return "Errorcode: %d\n" . $this->mydb->errno . $this->mydb->error;
  40. }
  41. /**
  42. * 查询数组列表
  43. */
  44. public function select($sql)
  45. {
  46. $result = $this->mydb->query($sql);
  47. $data = array();
  48. while ($arr = $result->fetch_assoc()) {
  49. $data[] = $arr;
  50. }
  51. return $data;
  52. }
  53. /**
  54. * 查询一条
  55. */
  56. public function getOneById($id, $tablename = '')
  57. {
  58. $tablename = $tablename ? $tablename : $this->tablename;
  59. $sql = "SELECT * FROM `$tablename` WHERE `id`=$id;";
  60. $result = $this->mydb->query($sql);
  61. $data = $result->fetch_assoc();
  62. // var_dump($data);
  63. return $data;
  64. }
  65. /**
  66. * 列表结果集
  67. */
  68. public function dataList($where = '')
  69. {
  70. $sql = "select * from $this->tablename $where;";
  71. return $this->select($sql);
  72. }
  73. /**
  74. * 分页结果集
  75. */
  76. public function pageList($where, $page = 1, $limit = 10)
  77. {
  78. $res = $this->query("select count(*) as total from $this->tablename $where;");
  79. $data = $res->fetch_assoc();
  80. $offset = ($page - 1) * $limit;
  81. $sql = "select * from $this->tablename $where limit $offset, $limit;";
  82. $list = $this->select($sql);
  83. $data['list'] = $list;
  84. $data['page'] = $page;
  85. $data['limit'] = $limit;
  86. return $data;
  87. }
  88. /**
  89. * save
  90. */
  91. public function save($data)
  92. {
  93. $columns = "";
  94. $values = "";
  95. foreach ($data as $key => $value) {
  96. $columns .= "`" . $key . "`,";
  97. $values .= "'" . $value . "',";
  98. }
  99. $columns = rtrim($columns, ',');
  100. $values = rtrim($values, ',');
  101. $sql = "INSERT INTO `$this->tablename`(" . $columns . ") VALUES(". $values . ");";
  102. // echo $sql;
  103. return $this->query($sql);
  104. }
  105. /**
  106. * updateById
  107. */
  108. public function updateById($data)
  109. {
  110. $id = $data['id'];
  111. unset($data['id']);
  112. $columns = "";
  113. foreach ($data as $key => $value) {
  114. $columns .= "`" . $key . "`='" . $value ."',";
  115. }
  116. $columns = rtrim($columns, ',');
  117. $sql = "UPDATE `$this->tablename` SET $columns WHERE `id`=$id";
  118. return $this->query($sql);
  119. }
  120. /**
  121. * deleteByIds
  122. */
  123. public function deleteById($id)
  124. {
  125. $sql = "DELETE FROM `$this->tablename` WHERE `id` IN(";
  126. if (is_array($id)) {
  127. for ($i=0; $i < count($id); $i++) {
  128. $sql .= $id[$i] . ',';
  129. }
  130. $sql = rtrim($sql, ',');
  131. $sql .= ");";
  132. } else {
  133. $sql = "DELETE FROM `$this->tablename` WHERE `id`=$id;";
  134. }
  135. return $this->query($sql);
  136. }
  137. public function __destruct()
  138. {
  139. $this->mydb->close();
  140. }
  141. }