sql.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <?php
  2. class sql_m extends Model
  3. {
  4. var $sql_ext = "WHERE 1=1 ";
  5. var $psize = 20;
  6. function __construct()
  7. {
  8. parent::Model();
  9. }
  10. function sql_m()
  11. {
  12. $this->__construct();
  13. }
  14. function sql_prefix()
  15. {
  16. return $this->db->prefix;
  17. }
  18. function get_all()
  19. {
  20. $sql = "SHOW TABLE STATUS FROM ".$this->db->data;
  21. return $this->db->get_all($sql);
  22. }
  23. function optimize($table)
  24. {
  25. $sql = "OPTIMIZE TABLE ".$table;
  26. return $this->db->query($sql);
  27. }
  28. function repair($table)
  29. {
  30. $sql = "REPAIR TABLE ".$table;
  31. return $this->db->query($sql);
  32. }
  33. function show_create_table($table)
  34. {
  35. $sql = "SHOW CREATE TABLE ".$table;
  36. $this->db->set("rs_type","num");
  37. $rs = $this->db->get_one($sql);
  38. $rs = $rs[1];
  39. $this->db->set("rs_type","charet");
  40. return $rs;
  41. }
  42. function field_list($table)
  43. {
  44. $sql = "SHOW FIELDS FROM ".$table;
  45. return $this->db->get_all($sql);
  46. }
  47. function keys_list($table)
  48. {
  49. $sql = "SHOW KEYS FROM ".$table;
  50. return $this->db->get_all($sql);
  51. }
  52. //判断数据库是否包含
  53. function tbl_exists($tbl,$idlist)
  54. {
  55. return in_array($this->db->prefix.$tbl,$idlist) ? true : false;
  56. }
  57. function getsql($tbl,$offset=0,$psize="all")
  58. {
  59. $sql = "SELECT * FROM ".$tbl;
  60. if($psize != "all")
  61. {
  62. $sql .= " LIMIT ".$offset.",".$psize;
  63. }
  64. return $this->db->get_all($sql);
  65. }
  66. function escape_string($rs)
  67. {
  68. return $this->db->escape_string($rs);
  69. }
  70. function table_count($table)
  71. {
  72. $sql = "SELECT count(*) FROM ".$table;
  73. return $this->db->count($sql);
  74. }
  75. function query($sql)
  76. {
  77. return $this->db->query($sql);
  78. }
  79. function query_create($sql)
  80. {
  81. $sql_version = $this->db->get_version();
  82. $sql = preg_replace("/^\s*(CREATE TABLE\s+.+\s+\(.+?\)).*$/isU", "\\1", $sql).($sql_version > '4.1' ? " ENGINE=MyISAM DEFAULT CHARSET=utf8" : " TYPE=MYISAM");
  83. return $this->db->query($sql);
  84. }
  85. //修正SESSION表操作
  86. function recover_session()
  87. {
  88. $sql = "DROP TABLE IF EXISTS ".$this->db->prefix."session";
  89. $this->db->query($sql);
  90. $sql_version = $this->db->get_version();
  91. $sql = "CREATE TABLE IF NOT EXISTS ".$this->db->prefix."session (`id` varchar(32) NOT NULL COMMENT 'session_id',`data` text NOT NULL COMMENT 'session 内容',`lasttime` int(10) unsigned NOT NULL COMMENT '时间',PRIMARY KEY (`id`)) ";
  92. $sql .= ($sql_version > '4.1' ? " ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='SESSION操作'" : " TYPE=MYISAM");
  93. $this->db->query($sql);
  94. return true;
  95. }
  96. }
  97. ?>