如何通过PHP安装数据库并使数据初始化

 更新时间:2024年03月25日 10:02:56   作者:下页、再停留  
这篇文章主要介绍了如何通过PHP安装数据库并使数据初始化,其实原理就是通过构建原生SQL来创建并初始化数据库,连接数据库、创建数据库、使用数据库、创建数据表、新增数据、关闭连接,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧

一、前言

有些CMS在部署的时候不用使用数据库工具,而是通过数据库安装页面就能完成数据库创建和数据填充,所以自己就想动手做一个这样的功能,这样在给别人安装系统的时候就不用再那么麻烦了,直接一键安装解决了。

二、效果图

输入数据库相关信息后,点击安装并有不同的提示。

三、核心代码

原理:其实就是通过构建原生SQL来创建并初始化数据库,连接数据库、创建数据库、使用数据库、创建数据表、新增数据、关闭连接。

创建前首先要准备以下内容:

① 准备数据库的基本信息:数据库地址、数据库名称、用户名、密码

② 要创建的表及表结构

③ 要初始化的数据

public function createDb($data)
{
	$host = $data['mysqlHostname'];
	$user = $data['mysqlUsername'];
	$pwd = $data['mysqlPassword'];
	$db = $data['mysqlDatabase'];
	// 1.连接数据库
	$conn = mysqli_connect($host, $user, $pwd);
	if (!$conn) {
		// echo "1/7 数据库连接失败<br/><br/>";
		return '1/7 数据库连接失败';
	}else{
		// echo "1/7 数据库连接完成<br/><br/>";
	}
	// 2.创建数据库
	// 先删除再创建
	$sql = "DROP DATABASE {$db}";
	if (mysqli_query($conn, $sql)) {
	 // echo "2/7 数据库删除完成<br/>";
	}else{
		// echo "2/7". mysqli_error($conn)."<br/><br/>";
		// return "2/7 ".mysqli_error($conn);
	}
	// 创建
	$sql = "create database {$db}";
	if (mysqli_query($conn, $sql)) {
	 // echo "2/7 数据库创建完成<br/>";
	}else{
		// echo "2/7". mysqli_error($conn)."<br/><br/>";
		return "2/7 ".mysqli_error($conn);
	}
	// 3.使用数据表
	// echo "3/7 选择数据库开始...<br/>";
	$sql = "use {$db}";
	mysqli_query($conn,$sql);
	// echo "3/7 选择数据库完成<br/><br/>";
	// 4.检查数据库是否存在
	// echo "4/7 检测数据库开始...<br/>";
	$sql = "DROP TABLE IF EXISTS `dic_s_use`";
	mysqli_query($conn,$sql);
	// echo "4/7 检测数据库完成<br/><br/>";
	// 5.创建数据表  批量创建
	// echo "5/7 创建数据表开始...<br/>";
	// dic_s_use 表
	$sql = "CREATE TABLE `dic_s_use`  (
		  `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID',
		  `s_use` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '特殊用法',
		  `hospital_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '机构/医院代码',
		  `status` enum('0','1') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '1' COMMENT '状态:1=正常,0=禁用',
		  PRIMARY KEY (`id`) USING BTREE
		) ENGINE = MyISAM AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '特殊用法' ROW_FORMAT = Dynamic";
	if (mysqli_query($conn,$sql)) {
		// echo "5/7 数据表[dic_s_use]创建成功<br/>";
	}else{
		// echo "5/7 数据表[dic_s_use]创建失败".mysqli_error($conn)."<br/>";
		return "5/7 数据表[dic_s_use]创建失败".mysqli_error($conn);
	}
	// 6.添加数据
	// echo "6/7 添加数据开始...<br/>";
	// dic_s_use 表
	$insert_use = "(null, '另煎', 'ceshi', '1'),
					(null, '先煎', 'ceshi', '1'),
					(null, '后下', 'ceshi', '1'),
					(null, '包煎', 'ceshi', '1'),
					(null, '烊化', 'ceshi', '1'),
					(null, '冲服', 'ceshi', '1'),
					(null, '煎服', 'ceshi', '1')";
	$sql = "INSERT INTO `dic_s_use` VALUES {$insert_use}";
	if (mysqli_query($conn,$sql)) {
		// echo "6/7 数据表[dic_s_use]数据导入成功<br/>";
	}else{
		// echo "6/7 数据表[dic_s_use]数据导入失败".mysqli_error($conn)."<br/>";
		return "6/7 数据表[dic_s_use]数据导入失败".mysqli_error($conn);
	}
	// 7.关闭连接
	// echo "7/7 数据库关闭连接开始...<br/>";
	mysqli_close($conn);
	// echo "7/7 数据库关闭连接完成<br/><br/><br/>";
	return '200';
	// echo "安装数据库完成<br/>";
}

到此这篇关于通过PHP安装数据库并使数据初始化的文章就介绍到这了,更多相关PHP数据初始化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • PHP中实现获取IP和地理位置类分享

    PHP中实现获取IP和地理位置类分享

    这篇文章主要介绍了PHP中实现获取IP和地理位置类分享,本文地理定位使用的是SINA的通用接口,需要的朋友可以参考下
    2015-02-02
  • zend optimizer在wamp的基础上安装图文教程

    zend optimizer在wamp的基础上安装图文教程

    在用wampserver集成开发环境下,有时会碰到一些开源程序需要zend optimizer的支持,下面我用的wamp的版本是2.0,optimizer的版本是ZendOptimizer-3.3.3-Windows-i386
    2013-10-10
  • laravel5.1框架下的批量赋值实现方法分析

    laravel5.1框架下的批量赋值实现方法分析

    这篇文章主要介绍了laravel5.1框架下的批量赋值实现方法,结合实例形式分析了Laravel5.1框架批量赋值的相关原理与实现方法,需要的朋友可以参考下
    2019-12-12
  • 在Thinkphp中使用ajax实现无刷新分页的方法

    在Thinkphp中使用ajax实现无刷新分页的方法

    这篇文章主要介绍了在Thinkphp中使用ajax实现无刷新分页的方法的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下
    2016-10-10
  • Laravel 添加多语言提示信息的方法

    Laravel 添加多语言提示信息的方法

    今天小编就为大家分享一篇Laravel 添加多语言提示信息的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • php视频拍照上传头像功能实现代码分享

    php视频拍照上传头像功能实现代码分享

    现在手机拍照很火,那么如何使用手机拍照并上传头像呢?原因很简单,就是数据传递,首先手机传递照片信息,既不是post传递也不是get函数传递,这个另外一种数据格式传递,使用的是$GLOBALS ['HTTP_RAW_POST_DATA'],需要的朋友可以参考下
    2015-10-10
  • 老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略

    老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略

    这篇文章主要介绍了Ubuntu下Apache+PHP+MySQL环境搭建攻略,文中采用的是LoadModule加载模块的方式将PHP与Apache服务器程序连接,需要的朋友可以参考下
    2016-03-03
  • 支持中文、字母、数字的PHP验证码

    支持中文、字母、数字的PHP验证码

    本文给大家分享的是一个可以生产5种验证码的php类,该类的对象能动态获取验证码图片,验证码字符保存在SESSION中 又要的小伙伴可以参考下。
    2015-05-05
  • CodeIgniter配置之autoload.php自动加载用法分析

    CodeIgniter配置之autoload.php自动加载用法分析

    这篇文章主要介绍了CodeIgniter配置之autoload.php自动加载用法,结合实例形式较为详细的分析了CodeIgniter自动加载机制的原理与使用方法,需要的朋友可以参考下
    2016-01-01
  • Yii使用EasyWechat实现小程序获取用户的openID的方法

    Yii使用EasyWechat实现小程序获取用户的openID的方法

    这篇文章主要介绍了Yii使用EasyWechat实现小程序获取用户的openID的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04

最新评论