php安装gb,php安装程序的原理

当我们写了一个网站程序想分享给别人一起使用时,通常我们都会把数据库表的结构、表的初始化数据导出来,以方便他人导入数据库。但为何我们不写个安装程序,只要填写了主机,连接数据库的用户名跟密码、要创建的数据库名,程序就会帮我们创建数据库、表、初始化表的数据。所以写安装程序主要出于两个目的:第一个是方便自己移植自己的网站,第二个就是方便别人使用你的程序。下面就简单介绍一下php安装程序的基本原理。

简单步骤如下:

1、写一个form表单供用户填写主机名$host,连接数据库的用户名$user跟密码$password,要创建的数据库名$dbname。

2、将获得表单的数据写入一个配置文件config.php,以方便其它文件来调用数据库的信息。

3、调用配置文件include_once("config.php"),写程序进行数据库的连接,创建数据库、创建表、初始化表的数据。

ok,首先开始第一步

[xhtml] view plaincopyprint?

填写主机:本地主机为localhost

连接数据库的用户名:

连接数据库的密码:

要创建的数据库名:

填写主机:本地主机为localhost
连接数据库的用户名:
连接数据库的密码:
要创建的数据库名:

2、将获得表单的数据写入一个配置文件config.php,以方便其它文件来调用数据库的信息。

[php] view plaincopyprint?<?php

header("Content-type:text/html;charset=gb2312") //看你用的是什么编码,要保持一致。

$files="config.php"; //要写入的配置文件。

if(!is_writable($files)){    //判断是否有可写的权限,linux操作系统要注意这一点,windows不必注意。

echo "文件不可写";

exit();

}

if($_POST['install']){  //获取用户提交的数据。

$host=$_POST['host'];

$user=$_POST['user'];

$password=$_POST['password'];

$dbname=$_POST['dbname'];

$config="<?php  ";        //$config的内容就是要写入配置文件的内容。

$config.="/n";            //   /n是用来换行的。

$config.="/$host='".$host."';";

$config.="/n";

$config.="/$user='".$user."';";

$config.="/n";

$config.="/$password='".$password."';";

$config.="/n";

$config.="/$dbname='".$dbname."';";

$config.="/n";

$config.="?>";

$file = fopen($files, "w");   //以写入的方式打开config.php这个文件。

fwrite($file,$config);  //将配置信息写入config.php文件。

fclose($file);

}

?>

<?phpheader ("Content-type:text/html;charset=gb2312") //看你用的是什么编码,要保持一致。$files="config.php"; //要写入的配置文件。if(!is_writable($files)){    //判断是否有可写的权限,linux操作系统要注意这一点,windows不必注意。    echo "文件不可写";      exit();}if($_POST['install']){  //获取用户提交的数据。$host=$_POST['host'];$user=$_POST['user'];$password=$_POST['password'];$dbname=$_POST['dbname']; $config="<?php ";        //$config的内容就是要写入配置文件的内容。$config.="/n";            //   /n是用来换行的。$config.="/$host='".$host."';";$config.="/n";  $config.="/$user='".$user."';";$config.="/n";  $config.="/$password='".$password."';";$config.="/n";  $config.="/$dbname='".$dbname."';";$config.="/n";  $config.="?>"; $file = fopen($files, "w");   //以写入的方式打开config.php这个文件。fwrite($file,$config);  //将配置信息写入config.php文件。fclose($file);}?>

3、调用配置文件include_once("config.php"),写程序进行数据库的连接,创建数据库、创建表、初始化表的数据。

[php] view plaincopyprint?<?php

include_once("config.php");   //导入配置信息.

if(!$conn=@mysql_connect($host,$user,$password)){

echo "连接数据库失败!请返回上一页检查连接参数 返回修改";

exit();

}else{

mysql_query("set names gb2312");  //设置数据库的编码,注意要与前面一致。

if(!mysql_select_db($dbname,$conn)){   //如果数据库不存在,我们就进行创建。

$dbsql="CREATE DATABASE `$dbname`";

if(!mysql_query($dbsql)){

echo "创建数据库失败,请确认是否有足够的权限!返回修改";

exit();

}

}

//下面根据你实际的表的结构跟初始化表的数据来写,这些sql语句,我们在导出时可以找到。

//新建一个表test1

$sql_query[] = "CREATE TABLE `test1` (

`id` int(4) NOT NULL auto_increment,

`name` varchar(20) character set gb2312 NOT NULL,

`major` varchar(40) character set gb2312 NOT NULL,

PRIMARY KEY  (`id`)

) ENGINE=InnoDB  DEFAULT CHARSET=gb2312 AUTO_INCREMENT=1;";

//新建一个表test2

$sql_query[] = "CREATE TABLE `test2` (

`id` int(4) NOT NULL auto_increment,

`name` varchar(20) character set gb2312 NOT NULL,

`major` varchar(40) character set gb2312 NOT NULL,

PRIMARY KEY  (`id`)

) ENGINE=InnoDB  DEFAULT CHARSET=gb2312 AUTO_INCREMENT=1;";

//为test1表默认初始化一些数据。

$sql_query[]="INSERT INTO `test1` (`name`, `major`) VALUES('张三','电子商务')";

foreach($sql_query as $sql){

if(!mysql_query($sql)){      //依次执行以上的sql语句,就是创建表和初始化数据。

echo "创建表失败或者初始化数据失败";

exit();

}

}

mysql_close();

echo "安装成功";//可以做一个跳转到首页。

exit();

}

?>

<?phpinclude_once ("config.php");   //导入配置信息.if(!$conn=@mysql_connect($host,$user,$password)){       echo "连接数据库失败!请返回上一页检查连接参数 返回修改";       exit();}else{  mysql_query("set names gb2312");  //设置数据库的编码,注意要与前面一致。   if(!mysql_select_db($dbname,$conn)){   //如果数据库不存在,我们就进行创建。         $dbsql="CREATE DATABASE `$dbname`";         if(!mysql_query($dbsql)){           echo "创建数据库失败,请确认是否有足够的权限!返回修改";           exit();          }   }//下面根据你实际的表的结构跟初始化表的数据来写,这些sql语句,我们在导出时可以找到。   //新建一个表test1   $sql_query[] = "CREATE TABLE `test1` (                    `id` int(4) NOT NULL auto_increment,                 `name` varchar(20) character set gb2312 NOT NULL,                 `major` varchar(40) character set gb2312 NOT NULL,                  PRIMARY KEY  (`id`)                  ) ENGINE=InnoDB  DEFAULT CHARSET=gb2312 AUTO_INCREMENT=1;";    //新建一个表test2    $sql_query[] = "CREATE TABLE `test2` (                    `id` int(4) NOT NULL auto_increment,                 `name` varchar(20) character set gb2312 NOT NULL,                 `major` varchar(40) character set gb2312 NOT NULL,                  PRIMARY KEY  (`id`)                  ) ENGINE=InnoDB  DEFAULT CHARSET=gb2312 AUTO_INCREMENT=1;";     //为test1表默认初始化一些数据。     $sql_query[]="INSERT INTO `test1` (`name`, `major`) VALUES('张三','电子商务')";     foreach($sql_query as $sql){            if(!mysql_query($sql)){      //依次执行以上的sql语句,就是创建表和初始化数据。            echo "创建表失败或者初始化数据失败";                exit();           }     }     mysql_close();     echo "安装成功";//可以做一个跳转到首页。     exit();}?>

有人或许为问,直接把表单提交的数据来进行安装不就可以了,为什么还要写入配置信息文件呢,这个是因为为了方便其它要使用到数据库的文件来连接数据库。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值