edit.sql.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. defined('IN_ADMIN') or exit('No permission resources.');
  3. $defaultvalue = isset($_POST['setting']['defaultvalue']) ? $_POST['setting']['defaultvalue'] : '';
  4. $minnumber = isset($_POST['setting']['minnumber']) ? $_POST['setting']['minnumber'] : 1;
  5. $decimaldigits = isset($_POST['setting']['decimaldigits']) ? $_POST['setting']['decimaldigits'] : '';
  6. switch($field_type) {
  7. case 'varchar':
  8. if(!$maxlength) $maxlength = 255;
  9. $maxlength = min($maxlength, 255);
  10. $fieldtype = $issystem ? 'CHAR' : 'VARCHAR';
  11. $sql = "ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` $fieldtype( $maxlength ) NOT NULL DEFAULT '$defaultvalue'";
  12. $this->db->query($sql);
  13. break;
  14. case 'tinyint':
  15. $minnumber = intval($minnumber);
  16. $defaultvalue = intval($defaultvalue);
  17. $this->db->query("ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` TINYINT ".($minnumber >= 0 ? 'UNSIGNED' : '')." NOT NULL DEFAULT '$defaultvalue'");
  18. break;
  19. case 'number':
  20. $minnumber = intval($minnumber);
  21. $defaultvalue = $decimaldigits == 0 ? intval($defaultvalue) : floatval($defaultvalue);
  22. $sql = "ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` ".($decimaldigits == 0 ? 'INT' : 'FLOAT')." ".($minnumber >= 0 ? 'UNSIGNED' : '')." NOT NULL DEFAULT '$defaultvalue'";
  23. $this->db->query($sql);
  24. break;
  25. case 'smallint':
  26. $minnumber = intval($minnumber);
  27. $defaultvalue = intval($defaultvalue);
  28. $this->db->query("ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` SMALLINT ".($minnumber >= 0 ? 'UNSIGNED' : '')." NOT NULL DEFAULT '$defaultvalue'");
  29. break;
  30. case 'mediumint':
  31. $minnumber = intval($minnumber);
  32. $defaultvalue = intval($defaultvalue);
  33. $this->db->query("ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` MEDIUMINT ".($minnumber >= 0 ? 'UNSIGNED' : '')." NOT NULL DEFAULT '$defaultvalue'");
  34. break;
  35. case 'int':
  36. $minnumber = intval($minnumber);
  37. $defaultvalue = intval($defaultvalue);
  38. $this->db->query("ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` INT ".($minnumber >= 0 ? 'UNSIGNED' : '')." NOT NULL DEFAULT '$defaultvalue'");
  39. break;
  40. case 'mediumtext':
  41. $this->db->query("ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` MEDIUMTEXT NOT NULL");
  42. break;
  43. case 'text':
  44. $this->db->query("ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` TEXT NOT NULL");
  45. break;
  46. case 'date':
  47. $this->db->query("ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` DATE NULL");
  48. break;
  49. case 'datetime':
  50. $this->db->query("ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` DATETIME NULL");
  51. break;
  52. case 'timestamp':
  53. $this->db->query("ALTER TABLE `$tablename` CHANGE `$oldfield` `$field` TIMESTAMP NOT NULL");
  54. break;
  55. //特殊自定义字段
  56. case 'pages':
  57. break;
  58. case 'readpoint':
  59. $defaultvalue = intval($defaultvalue);
  60. $this->db->query("ALTER TABLE `$tablename` CHANGE `$oldfield` `readpoint` smallint(5) unsigned NOT NULL default '$defaultvalue'");
  61. break;
  62. }
  63. ?>