数据库安装程序类,用于满足php新手在学习中快速建立数据库,数据库表和填充表.本类也可作为新手的学习参考!
时间:2010-07-02
来源:互联网
改类正在完善...需要完整源码包的朋友可以联系我...
本人和大家一样是一位热爱学习的年轻phper...
本类有不足之处,敬请包涵...
只供大家学习...
<?php
/**
* Created on 2010-7-01
* 数据库安装程序
* 作者:黄乐
* 联系方式:15827031093
* QQ:385863089
*/
/**
* 用来提示用户的操作结果的类
*/
class action{
public function get_show_msg($url, $show = '操作已成功!') {
$msg = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<link rel="stylesheet" href="Public/common.css" type="text/css" />
<meta http-equiv="refresh" content="2; url=' . $url . '" />
<title>消息提示</title>
</head>
<body>
<div id="man_zone">
<table width="30%" border="1" align="center" cellpadding="3" cellspacing="0" class="table" style="margin-top:100px;">
<tr>
<th align="center" style="background:#cef">信息提示</th>
</tr>
<tr>
<td><p>' . $show . '<br />
2秒后返回指定页面!<br />
如果浏览器无法跳转,<a href="' . $url . '">请点击此处</a>。</p></td>
</tr>
</table>
</div>
</body>
</html>';
echo $msg;
exit ();
}
} //end class
/**
* 数据库安装的类
* 将数据库结构和表信息与程序分离
*/
class install extends action{
//用来判断数据库安装是否成功
public $install = 'true';
//数据库的名称
private $db;
//数据库链接标识
private $con;
//检查数据库链接情况
//url参数用于设置数据库链接失败后跳转到的页面
//show参数用于设置数据库链接失败后给用户的提示信息
public function connect($db_host, $db_user, $db_pwd, $url = '', $show = '数据库链接失败!'){
$this->con = @mysql_connect($db_host, $db_user, $db_pwd);
if(!$this->con){
$this->get_show_msg($url, $show);
}
}
//创建数据库
//url参数用于设置创建数据库失败后跳转到的页面
//show参数用于设置创建数据库失败后给用户的提示信息
public function create_database($db, $url = '', $show = '数据库已经存在!'){
//如果数据库不存在就创建一个数据库
$select_db = mysql_select_db($db,$this->con);
if($select_db){
$this->get_show_msg($url, $show); //数据库存在就提示用户
}else{
mysql_query("CREATE DATABASE `$db`");
}
$this->db = $db; //返回数据库名
}
//创建数据库表
//table_structure_url参数用来传递表结构所在的文件的文件路径
//delimit参数是用来切割表结构和表数据的分隔符
//flag参数用来判断是否要填充表
//table_data参数用来传递表数据所在的文件的文件路径
public function create_table($table_structure_url, $delimit, $flag="not_insert", $table_data='', $coding='gb2312'){
$file = fopen($table_structure_url,"r");
$file = fread($file,filesize($table_structure_url)); //读取表结构文件的内容
$table_structure = explode($delimit,$file); //将表的结构数据切割成数组
mysql_select_db($this->db); //选择数据库
mysql_query("SET NAMES '$coding'");
//循环出每个表的结构,并依次的创建每一个表
foreach($table_structure as $val){
$query = mysql_query($val);
// mysql_query失败就执行if语句
if(!$query){
//创建表出错,就返回false,用来判断程序的安装是否成功
$this->install = false;
break; //跳出循环
}
}
//判断是否需要填充表
if($flag == "insert"){
$file = fopen($table_data,"r");
$file = fread($file,filesize($table_data)); //读取表数据文件的内容
$table_data = explode($delimit,$file); //将表的结构数据分割成数组
//循环出每条数据,并依次的插入表中
foreach($table_data as $val){
$query = mysql_query($val);
// mysql_query失败就执行if语句
if(!$query){
//填充表出错,返回false,用来判断程序的安装是否成功
$this->install = false;
break; //跳出循环
}
}
}
// 如果创建表或者填充表的过程中出现了错误,就清除该程序所创建的数据库
if($this->install != 'true'){
mysql_query("DROP DATABASE `$this->db`");
}
}
//如果数据库安装成功,就可以将安装文件锁起来
public function lock(){
$url = $_SERVER[PHP_SELF]; //取得当前文件的路径
$url = explode("/",$url); //讲当前文件的路径分割成数组
echo $filename = $url[count($url)-1]; //取得当前文件的文件名称
$filelock = str_replace(".php",".lock",$filename); //将当前文件的后缀名改成.lock
rename($filename,$filelock); //重命名当前文件,把安装文件锁起来
}
/**
* demo:
* 注意:使用该类时请注意将表的结构和数据用自定义的分割符分隔
* 例如:-----
* $install = new install();
* if(!empty($_POST[主机名])&& !empty($_POST[用户名])&& !empty($_POST[数据库])){
* $install->connect($_POST[主机名], $_POST[用户名], $_POST[密码], 'xxx.php[如果数据库链接失败则返回的url]', '数据库链接失败![给用户的提示]');
* $install->create_database($_POST[数据库名], 'xxx.php', '数据库已经存在!');
* $install->create_table("data/install.sql【表结构文件的路径】","-----【讲表结构分割成数组的分割符】","insert【是否选择填充表】","data/install_data.sql【填充的数据的文件的路径】");
* if($install->install != 'true'){
* $install->get_show_msg("xxx.php","数据库安装出错,请检查相关数据");
* }
* $install->get_show_msg('index.php', '数据库安装成功!');
* }else{
* $install->get_show_msg('index.php', '请填写基本信息!');
* }
*/
}
?>
本人和大家一样是一位热爱学习的年轻phper...
本类有不足之处,敬请包涵...
只供大家学习...
<?php
/**
* Created on 2010-7-01
* 数据库安装程序
* 作者:黄乐
* 联系方式:15827031093
* QQ:385863089
*/
/**
* 用来提示用户的操作结果的类
*/
class action{
public function get_show_msg($url, $show = '操作已成功!') {
$msg = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<link rel="stylesheet" href="Public/common.css" type="text/css" />
<meta http-equiv="refresh" content="2; url=' . $url . '" />
<title>消息提示</title>
</head>
<body>
<div id="man_zone">
<table width="30%" border="1" align="center" cellpadding="3" cellspacing="0" class="table" style="margin-top:100px;">
<tr>
<th align="center" style="background:#cef">信息提示</th>
</tr>
<tr>
<td><p>' . $show . '<br />
2秒后返回指定页面!<br />
如果浏览器无法跳转,<a href="' . $url . '">请点击此处</a>。</p></td>
</tr>
</table>
</div>
</body>
</html>';
echo $msg;
exit ();
}
} //end class
/**
* 数据库安装的类
* 将数据库结构和表信息与程序分离
*/
class install extends action{
//用来判断数据库安装是否成功
public $install = 'true';
//数据库的名称
private $db;
//数据库链接标识
private $con;
//检查数据库链接情况
//url参数用于设置数据库链接失败后跳转到的页面
//show参数用于设置数据库链接失败后给用户的提示信息
public function connect($db_host, $db_user, $db_pwd, $url = '', $show = '数据库链接失败!'){
$this->con = @mysql_connect($db_host, $db_user, $db_pwd);
if(!$this->con){
$this->get_show_msg($url, $show);
}
}
//创建数据库
//url参数用于设置创建数据库失败后跳转到的页面
//show参数用于设置创建数据库失败后给用户的提示信息
public function create_database($db, $url = '', $show = '数据库已经存在!'){
//如果数据库不存在就创建一个数据库
$select_db = mysql_select_db($db,$this->con);
if($select_db){
$this->get_show_msg($url, $show); //数据库存在就提示用户
}else{
mysql_query("CREATE DATABASE `$db`");
}
$this->db = $db; //返回数据库名
}
//创建数据库表
//table_structure_url参数用来传递表结构所在的文件的文件路径
//delimit参数是用来切割表结构和表数据的分隔符
//flag参数用来判断是否要填充表
//table_data参数用来传递表数据所在的文件的文件路径
public function create_table($table_structure_url, $delimit, $flag="not_insert", $table_data='', $coding='gb2312'){
$file = fopen($table_structure_url,"r");
$file = fread($file,filesize($table_structure_url)); //读取表结构文件的内容
$table_structure = explode($delimit,$file); //将表的结构数据切割成数组
mysql_select_db($this->db); //选择数据库
mysql_query("SET NAMES '$coding'");
//循环出每个表的结构,并依次的创建每一个表
foreach($table_structure as $val){
$query = mysql_query($val);
// mysql_query失败就执行if语句
if(!$query){
//创建表出错,就返回false,用来判断程序的安装是否成功
$this->install = false;
break; //跳出循环
}
}
//判断是否需要填充表
if($flag == "insert"){
$file = fopen($table_data,"r");
$file = fread($file,filesize($table_data)); //读取表数据文件的内容
$table_data = explode($delimit,$file); //将表的结构数据分割成数组
//循环出每条数据,并依次的插入表中
foreach($table_data as $val){
$query = mysql_query($val);
// mysql_query失败就执行if语句
if(!$query){
//填充表出错,返回false,用来判断程序的安装是否成功
$this->install = false;
break; //跳出循环
}
}
}
// 如果创建表或者填充表的过程中出现了错误,就清除该程序所创建的数据库
if($this->install != 'true'){
mysql_query("DROP DATABASE `$this->db`");
}
}
//如果数据库安装成功,就可以将安装文件锁起来
public function lock(){
$url = $_SERVER[PHP_SELF]; //取得当前文件的路径
$url = explode("/",$url); //讲当前文件的路径分割成数组
echo $filename = $url[count($url)-1]; //取得当前文件的文件名称
$filelock = str_replace(".php",".lock",$filename); //将当前文件的后缀名改成.lock
rename($filename,$filelock); //重命名当前文件,把安装文件锁起来
}
/**
* demo:
* 注意:使用该类时请注意将表的结构和数据用自定义的分割符分隔
* 例如:-----
* $install = new install();
* if(!empty($_POST[主机名])&& !empty($_POST[用户名])&& !empty($_POST[数据库])){
* $install->connect($_POST[主机名], $_POST[用户名], $_POST[密码], 'xxx.php[如果数据库链接失败则返回的url]', '数据库链接失败![给用户的提示]');
* $install->create_database($_POST[数据库名], 'xxx.php', '数据库已经存在!');
* $install->create_table("data/install.sql【表结构文件的路径】","-----【讲表结构分割成数组的分割符】","insert【是否选择填充表】","data/install_data.sql【填充的数据的文件的路径】");
* if($install->install != 'true'){
* $install->get_show_msg("xxx.php","数据库安装出错,请检查相关数据");
* }
* $install->get_show_msg('index.php', '数据库安装成功!');
* }else{
* $install->get_show_msg('index.php', '请填写基本信息!');
* }
*/
}
?>
附件:
install.rar (8 K) 下载次数:6

作者: huangle 发布时间: 2010-07-02
嘿嘿,沙发
帮顶。。。
帮顶。。。
作者: yjhappy 发布时间: 2010-07-02
谢谢
作者: whl1295a 发布时间: 2010-07-02
不客气
作者: huangle 发布时间: 2010-07-03
很好,很不错
作者: phua 发布时间: 2010-09-26
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28