CREATE TABLE `show_prod` ( `sn` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'prod_sn', `kind` smallint(5) unsigned NOT NULL default 0 COMMENT '分類', `title` varchar(255) NOT NULL default '' COMMENT '名稱', `summary` text NOT NULL default '' COMMENT '摘要', `content` text NOT NULL default '' COMMENT '內容', `price` int(10) unsigned NOT NULL default 0 COMMENT '價格', `enable` enum('1','0') NOT NULL DEFAULT '1' COMMENT '狀態', `date` int(10) unsigned NOT NULL default 0 COMMENT '建立日期', `sort` smallint(5) unsigned NOT NULL default 0 COMMENT '排序', `counter` int(10) unsigned NOT NULL default 0 COMMENT '人氣', PRIMARY KEY (`sn`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; ``` 2. 自動更新,update.php ``` assign("op", $op); /* $WEB['theme_name'] = "admin"; WEB['title'] = "網站名稱"; $WEB['file_name'] = basename ($_SERVER['PHP_SELF']); */ #變數在head.php $smarty->assign("WEB", $WEB); #程式結尾 $smarty->display('theme.html'); #函數 ######################################## # 更新主程式 ######################################## function op_list() { global $mysqli; #檢查資料夾 mk_dir(WEB_PATH."/uploads"); mk_dir(WEB_PATH."/uploads/slider"); //-------- 資料表 ------ #檢查資料表(show_kind) if(!chk_isTable("show_kind")) go_update1(); #檢查資料表(show_files) if(!chk_isTable("show_files")) go_update2(); #檢查資料表(show_prod) if(!chk_isTable("show_prod")) go_update3(); //-------- 資料表 end------ //-------- 欄位 ------ //if(!chk_isColumn("sn1","show_kind")) go_update3(); //-------- 欄位 end------ return true; } ######################################## # 建立資料表 show_kind ######################################## function go_update1() { global $mysqli; $sql=" CREATE TABLE `show_kind` ( `sn` smallint(5) unsigned not null auto_increment comment 'sn', `ofsn` smallint(5) unsigned not null default 0 comment '父類別', `kind` varchar(255) not null default 'nav_home' comment '分類', `title` varchar(255) not null default '' comment '標題', `sort` smallint(5) unsigned not null default 0 comment '排序', `enable` enum('1','0') not null default '1' comment '狀態', `url` varchar(255) not null default '' comment '網址', `target` enum('0','1') not null default '0' comment '外連', `col_sn` int(10) unsigned not null default 0 comment 'col_sn', `content` text not null default '' comment '內容', PRIMARY KEY (`sn`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; "; $mysqli->query($sql) or die(printf("Error: %s ".$sql, $mysqli->sqlstate)); return true; } ######################################## # 建立資料表show_files ######################################## function go_update2() { global $mysqli; $sql=" CREATE TABLE `show_files` ( `sn` smallint(5) unsigned not null auto_increment comment 'sn', `col_name` varchar(255) not null default '' comment '欄位名稱', `col_sn` smallint(5) unsigned not null default 0 comment '欄位編號', `sort` smallint(5) unsigned not null default 0 comment '排序', `kind` enum('img','file') not null default 'img' comment '檔案種類', `file_name` varchar(255) not null default '' comment '檔案名稱', `file_type` varchar(255) not null default '' comment '檔案類型', `file_size` int(10) unsigned not null default 0 comment '檔案大小', `description` text not null default '' comment '檔案說明', `counter` mediumint(8) unsigned not null default 0 comment '下載人次', `sub_dir` varchar(255) not null default '' comment '檔案子路徑', PRIMARY KEY (`sn`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; ";//die($sql); $mysqli->query($sql) or die(printf("Error: %s ".$sql, $mysqli->sqlstate)); return true; } ######################################## # 建立資料表show_prod ######################################## function go_update3() { global $mysqli; $sql=" CREATE TABLE `show_prod` ( `sn` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'prod_sn', `kind` smallint(5) unsigned NOT NULL default 0 COMMENT '分類', `title` varchar(255) NOT NULL default '' COMMENT '名稱', `summary` text NOT NULL default '' COMMENT '摘要', `content` text NOT NULL default '' COMMENT '內容', `price` int(10) unsigned NOT NULL default 0 COMMENT '價格', `enable` enum('1','0') NOT NULL DEFAULT '1' COMMENT '狀態', `date` int(10) unsigned NOT NULL default 0 COMMENT '建立日期', `sort` smallint(5) unsigned NOT NULL default 0 COMMENT '排序', `counter` int(10) unsigned NOT NULL default 0 COMMENT '人氣', PRIMARY KEY (`sn`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; ";//die($sql); $mysqli->query($sql) or die(printf("Error: %s ".$sql, $mysqli->sqlstate)); return true; } ######################################## # 在資料表show_kind 增加一個 sn1 欄位 ######################################## // function go_update3() // { // global $mysqli; // $sql="ALTER TABLE `show_kind` ADD `sn1` smallint(5) unsigned NOT NULL default 0 comment 'sn1'";//die($sql); // $mysqli->query($sql) or die(printf("Error: %s ".$sql, $mysqli->sqlstate)); // return true; // } ######################################## # 檢查某欄位是否存在(欄名,資料表) ######################################## function chk_isColumn($col_name="",$tbl_name="") { global $mysqli; if(!$col_name and $tbl_name)return; //SHOW COLUMNS FROM `show_kind` LIKE 'sn1' $sql = "SHOW COLUMNS FROM `{$tbl_name}` LIKE '{$col_name}'"; $result = $mysqli->query($sql) or die(printf("Error: %s ".$sql, $mysqli->sqlstate)); if ($result->num_rows)return true; //欄位存在 return false;//欄位不存在 } ######################################## # 檢查資料表是否存在(資料表) ######################################## function chk_isTable($tbl_name="") { global $mysqli; if(!$tbl_name)return; $sql = "SHOW TABLES LIKE '{$tbl_name}'";//die($sql); $result = $mysqli->query($sql) or die(printf("Error: %s ".$sql, $mysqli->sqlstate)); if ($result->num_rows)return true; //欄位存在 return false;//欄位不存在 } ```
assign("op", $op); /* $WEB['theme_name'] = "admin"; WEB['title'] = "網站名稱"; $WEB['file_name'] = basename ($_SERVER['PHP_SELF']); */ #變數在head.php $smarty->assign("WEB", $WEB); #程式結尾 $smarty->display('theme.html'); #函數 ######################################## # 更新主程式 ######################################## function op_list() { global $mysqli; #檢查資料夾 mk_dir(WEB_PATH."/uploads"); mk_dir(WEB_PATH."/uploads/slider"); //-------- 資料表 ------ #檢查資料表(show_kind) if(!chk_isTable("show_kind")) go_update1(); #檢查資料表(show_files) if(!chk_isTable("show_files")) go_update2(); #檢查資料表(show_prod) if(!chk_isTable("show_prod")) go_update3(); //-------- 資料表 end------ //-------- 欄位 ------ //if(!chk_isColumn("sn1","show_kind")) go_update3(); //-------- 欄位 end------ return true; } ######################################## # 建立資料表 show_kind ######################################## function go_update1() { global $mysqli; $sql=" CREATE TABLE `show_kind` ( `sn` smallint(5) unsigned not null auto_increment comment 'sn', `ofsn` smallint(5) unsigned not null default 0 comment '父類別', `kind` varchar(255) not null default 'nav_home' comment '分類', `title` varchar(255) not null default '' comment '標題', `sort` smallint(5) unsigned not null default 0 comment '排序', `enable` enum('1','0') not null default '1' comment '狀態', `url` varchar(255) not null default '' comment '網址', `target` enum('0','1') not null default '0' comment '外連', `col_sn` int(10) unsigned not null default 0 comment 'col_sn', `content` text not null default '' comment '內容', PRIMARY KEY (`sn`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; "; $mysqli->query($sql) or die(printf("Error: %s ".$sql, $mysqli->sqlstate)); return true; } ######################################## # 建立資料表show_files ######################################## function go_update2() { global $mysqli; $sql=" CREATE TABLE `show_files` ( `sn` smallint(5) unsigned not null auto_increment comment 'sn', `col_name` varchar(255) not null default '' comment '欄位名稱', `col_sn` smallint(5) unsigned not null default 0 comment '欄位編號', `sort` smallint(5) unsigned not null default 0 comment '排序', `kind` enum('img','file') not null default 'img' comment '檔案種類', `file_name` varchar(255) not null default '' comment '檔案名稱', `file_type` varchar(255) not null default '' comment '檔案類型', `file_size` int(10) unsigned not null default 0 comment '檔案大小', `description` text not null default '' comment '檔案說明', `counter` mediumint(8) unsigned not null default 0 comment '下載人次', `sub_dir` varchar(255) not null default '' comment '檔案子路徑', PRIMARY KEY (`sn`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; ";//die($sql); $mysqli->query($sql) or die(printf("Error: %s ".$sql, $mysqli->sqlstate)); return true; } ######################################## # 建立資料表show_prod ######################################## function go_update3() { global $mysqli; $sql=" CREATE TABLE `show_prod` ( `sn` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'prod_sn', `kind` smallint(5) unsigned NOT NULL default 0 COMMENT '分類', `title` varchar(255) NOT NULL default '' COMMENT '名稱', `summary` text NOT NULL default '' COMMENT '摘要', `content` text NOT NULL default '' COMMENT '內容', `price` int(10) unsigned NOT NULL default 0 COMMENT '價格', `enable` enum('1','0') NOT NULL DEFAULT '1' COMMENT '狀態', `date` int(10) unsigned NOT NULL default 0 COMMENT '建立日期', `sort` smallint(5) unsigned NOT NULL default 0 COMMENT '排序', `counter` int(10) unsigned NOT NULL default 0 COMMENT '人氣', PRIMARY KEY (`sn`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; ";//die($sql); $mysqli->query($sql) or die(printf("Error: %s ".$sql, $mysqli->sqlstate)); return true; } ######################################## # 在資料表show_kind 增加一個 sn1 欄位 ######################################## // function go_update3() // { // global $mysqli; // $sql="ALTER TABLE `show_kind` ADD `sn1` smallint(5) unsigned NOT NULL default 0 comment 'sn1'";//die($sql); // $mysqli->query($sql) or die(printf("Error: %s ".$sql, $mysqli->sqlstate)); // return true; // } ######################################## # 檢查某欄位是否存在(欄名,資料表) ######################################## function chk_isColumn($col_name="",$tbl_name="") { global $mysqli; if(!$col_name and $tbl_name)return; //SHOW COLUMNS FROM `show_kind` LIKE 'sn1' $sql = "SHOW COLUMNS FROM `{$tbl_name}` LIKE '{$col_name}'"; $result = $mysqli->query($sql) or die(printf("Error: %s ".$sql, $mysqli->sqlstate)); if ($result->num_rows)return true; //欄位存在 return false;//欄位不存在 } ######################################## # 檢查資料表是否存在(資料表) ######################################## function chk_isTable($tbl_name="") { global $mysqli; if(!$tbl_name)return; $sql = "SHOW TABLES LIKE '{$tbl_name}'";//die($sql); $result = $mysqli->query($sql) or die(printf("Error: %s ".$sql, $mysqli->sqlstate)); if ($result->num_rows)return true; //欄位存在 return false;//欄位不存在 } ```