sitemodel_model.class.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. defined('IN_PHPCMS') or exit('No permission resources.');
  3. pc_base::load_sys_class('model', '', 0);
  4. class sitemodel_model extends model {
  5. public $table_name = '';
  6. public function __construct() {
  7. $this->db_config = pc_base::load_config('database');
  8. $this->db_setting = 'default';
  9. $this->table_name = 'model';
  10. parent::__construct();
  11. $this->charset = $this->db_config[$this->db_setting]['charset'];
  12. }
  13. public function sql_execute($sql) {
  14. $sqls = $this->sql_split($sql);
  15. if(is_array($sqls)) {
  16. foreach($sqls as $sql) {
  17. if(trim($sql) != '') {
  18. $this->db->query($sql);
  19. }
  20. }
  21. } else {
  22. $this->db->query($sqls);
  23. }
  24. return true;
  25. }
  26. public function sql_split($sql) {
  27. global $db;
  28. if($this->db->version() > '4.1' && $this->charset) {
  29. $sql = preg_replace("/TYPE=(InnoDB|MyISAM|MEMORY)( DEFAULT CHARSET=[^; ]+)?/", "ENGINE=\\1 DEFAULT CHARSET=".$this->charset,$sql);
  30. }
  31. if($this->db_tablepre != "phpcms_") $sql = str_replace("phpcms_", $this->db_tablepre, $sql);
  32. $sql = str_replace("\r", "\n", $sql);
  33. $ret = array();
  34. $num = 0;
  35. $queriesarray = explode(";\n", trim($sql));
  36. unset($sql);
  37. foreach($queriesarray as $query) {
  38. $ret[$num] = '';
  39. $queries = explode("\n", trim($query));
  40. $queries = array_filter($queries);
  41. foreach($queries as $query) {
  42. $str1 = substr($query, 0, 1);
  43. if($str1 != '#' && $str1 != '-') $ret[$num] .= $query;
  44. }
  45. $num++;
  46. }
  47. return($ret);
  48. }
  49. /**
  50. * 删除表
  51. *
  52. */
  53. public function drop_table($tablename) {
  54. $tablename = $this->db_tablepre.$tablename;
  55. $tablearr = $this->db->list_tables();
  56. if(in_array($tablename, $tablearr)) {
  57. return $this->db->query("DROP TABLE $tablename");
  58. } else {
  59. return false;
  60. }
  61. }
  62. /**
  63. * 修改member表会员模型
  64. * @param unknown_type $tablename
  65. */
  66. public function change_member_modelid($from_modelid, $to_modelid) {
  67. $tablename = $this->db_tablepre.'member';
  68. $this->db->update(array('modelid'=>$to_modelid), $tablename, "modelid='$from_modelid'");
  69. }
  70. }
  71. ?>