在做一个安装程序时,一起在想这个安装程序是怎么把SQL文件安装到数据库中的,其时我也知道它是通过文件处理来完成的:主要就是对文件读取来进行过滤,进而调用数据库的执行语句来完成,即可。

 

以下是SQL语句


# --------------------------------------------------------
# 表的结构 cms_album ,该表用于
# --------------------------------------------------------
DROP TABLE IF EXISTS cms_album;
CREATE TABLE cms_album (
  id SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
  path VARCHAR(100) NOT NULL DEFAULT '',
  title VARCHAR(100) NOT NULL DEFAULT '',
  description VARCHAR(200) NOT NULL DEFAULT '',
  PRIMARY KEY  (id)
) DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
# --------------------------------------------------------
# 表的结构 cms_article,该表用于
# --------------------------------------------------------
DROP TABLE IF EXISTS cms_article;
CREATE TABLE cms_article (
  id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  title VARCHAR(50) NOT NULL DEFAULT '',
  summary VARCHAR(200) NOT NULL DEFAULT '',
  postTime INT(10) UNSIGNED NOT NULL DEFAULT '0',
  author VARCHAR(30) NOT NULL DEFAULT '',
  comeFrom VARCHAR(50) NOT NULL DEFAULT '',
  content text NOT NULL,
  keyword VARCHAR(20) NOT NULL DEFAULT '',
  pid SMALLINT(5) UNSIGNED NOT NULL DEFAULT 0,
  picId SMALLINT(5) UNSIGNED NOT NULL DEFAULT 0,
  audit SMALLINT(1) UNSIGNED NOT NULL DEFAULT '0',
  recommend SMALLINT(1) UNSIGNED NOT NULL DEFAULT '0',
  views SMALLINT(5) UNSIGNED NOT NULL DEFAULT 0,
  PRIMARY KEY  (id),
  KEY pid (pid),
  KEY keyword (keyword),
  KEY recommend (recommend)
) DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
# --------------------------------------------------------
# 表的结构 cms_comments,该表用于
# --------------------------------------------------------
DROP TABLE IF EXISTS cms_comments;
CREATE TABLE cms_comments (
  id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  uid INT(11) UNSIGNED NOT NULL DEFAULT '0',
  aid INT(11) UNSIGNED NOT NULL DEFAULT '0',
  postTime INT(10) UNSIGNED NOT NULL DEFAULT '0',
  content text NOT NULL,
  cmt SMALLINT(5) NOT NULL DEFAULT 0,
  support SMALLINT(1) UNSIGNED NOT NULL DEFAULT '0',
  oppose SMALLINT(1) UNSIGNED NOT NULL DEFAULT '0',
  PRIMARY KEY  (id),
  KEY postTime (postTime)
) DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
# --------------------------------------------------------
# 表的结构 cms_album ,该表用于
# --------------------------------------------------------
DROP TABLE IF EXISTS cms_album;
CREATE TABLE cms_album (
  id SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
  path VARCHAR(100) NOT NULL DEFAULT '',
  title VARCHAR(100) NOT NULL DEFAULT '',
  description VARCHAR(200) NOT NULL DEFAULT '',
  PRIMARY KEY  (id)
) DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

 

很明显,我们需要把SQL语句中的”#,--”等符号去掉即可,再来调用数据库执行语句,如mysql_query()等。

 

<?php
//读取出所有行
  
$lines=file("lampcms.sql");
$sqlstr="";
foreach($lines as $line){
  $line=trim($line);
  if($line!=""){
    if(!($line{0}=="#" || $line{0}.$line{1}=="--")){
      $sqlstr.=$line;  
    }
  }
}
$sqlstr=rtrim($sqlstr,";");
$sqls=explode(";",$sqlstr);
?>

 

此时,所形成的数组则为:

image

 

再依次来进行执行mysql_query()函数即可。

posted on 2011-03-31 14:29  myjavawork  阅读(2852)  评论(0)    收藏  举报