设为首页收藏本站
天天打卡

 找回密码
 立即注册
搜索
查看: 72|回复: 18

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

[复制链接]

4

主题

45

回帖

159

积分

注册会员

积分
159
发表于 2024-4-19 20:19:06 | 显示全部楼层 |阅读模式
目录


一、前言

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

二、效果图

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


三、核心代码
  1. <strong>原理:</strong>其实就是通过构建原生SQL来创建并初始化数据库,连接数据库、创建数据库、使用数据库、创建数据表、新增数据、关闭连接。
  2. 创建前首先要准备以下内容:
  3. ① 准备数据库的基本信息:数据库地址、数据库名称、用户名、密码
  4. ② 要创建的表及表结构
  5. ③ 要初始化的数据
复制代码
  1. public function createDb($data)
  2. {
  3.         $host = $data['mysqlHostname'];
  4.         $user = $data['mysqlUsername'];
  5.         $pwd = $data['mysqlPassword'];
  6.         $db = $data['mysqlDatabase'];
  7.         // 1.连接数据库
  8.         $conn = mysqli_connect($host, $user, $pwd);
  9.         if (!$conn) {
  10.                 // echo "1/7 数据库连接失败<br/><br/>";
  11.                 return '1/7 数据库连接失败';
  12.         }else{
  13.                 // echo "1/7 数据库连接完成<br/><br/>";
  14.         }
  15.         // 2.创建数据库
  16.         // 先删除再创建
  17.         $sql = "DROP DATABASE {$db}";
  18.         if (mysqli_query($conn, $sql)) {
  19.          // echo "2/7 数据库删除完成<br/>";
  20.         }else{
  21.                 // echo "2/7". mysqli_error($conn)."<br/><br/>";
  22.                 // return "2/7 ".mysqli_error($conn);
  23.         }
  24.         // 创建
  25.         $sql = "create database {$db}";
  26.         if (mysqli_query($conn, $sql)) {
  27.          // echo "2/7 数据库创建完成<br/>";
  28.         }else{
  29.                 // echo "2/7". mysqli_error($conn)."<br/><br/>";
  30.                 return "2/7 ".mysqli_error($conn);
  31.         }
  32.         // 3.使用数据表
  33.         // echo "3/7 选择数据库开始...<br/>";
  34.         $sql = "use {$db}";
  35.         mysqli_query($conn,$sql);
  36.         // echo "3/7 选择数据库完成<br/><br/>";
  37.         // 4.检查数据库是否存在
  38.         // echo "4/7 检测数据库开始...<br/>";
  39.         $sql = "DROP TABLE IF EXISTS `dic_s_use`";
  40.         mysqli_query($conn,$sql);
  41.         // echo "4/7 检测数据库完成<br/><br/>";
  42.         // 5.创建数据表  批量创建
  43.         // echo "5/7 创建数据表开始...<br/>";
  44.         // dic_s_use 表
  45.         $sql = "CREATE TABLE `dic_s_use`  (
  46.                   `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID',
  47.                   `s_use` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '特殊用法',
  48.                   `hospital_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '机构/医院代码',
  49.                   `status` enum('0','1') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '1' COMMENT '状态:1=正常,0=禁用',
  50.                   PRIMARY KEY (`id`) USING BTREE
  51.                 ) ENGINE = MyISAM AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '特殊用法' ROW_FORMAT = Dynamic";
  52.         if (mysqli_query($conn,$sql)) {
  53.                 // echo "5/7 数据表[dic_s_use]创建成功<br/>";
  54.         }else{
  55.                 // echo "5/7 数据表[dic_s_use]创建失败".mysqli_error($conn)."<br/>";
  56.                 return "5/7 数据表[dic_s_use]创建失败".mysqli_error($conn);
  57.         }
  58.         // 6.添加数据
  59.         // echo "6/7 添加数据开始...<br/>";
  60.         // dic_s_use 表
  61.         $insert_use = "(null, '另煎', 'ceshi', '1'),
  62.                                         (null, '先煎', 'ceshi', '1'),
  63.                                         (null, '后下', 'ceshi', '1'),
  64.                                         (null, '包煎', 'ceshi', '1'),
  65.                                         (null, '烊化', 'ceshi', '1'),
  66.                                         (null, '冲服', 'ceshi', '1'),
  67.                                         (null, '煎服', 'ceshi', '1')";
  68.         $sql = "INSERT INTO `dic_s_use` VALUES {$insert_use}";
  69.         if (mysqli_query($conn,$sql)) {
  70.                 // echo "6/7 数据表[dic_s_use]数据导入成功<br/>";
  71.         }else{
  72.                 // echo "6/7 数据表[dic_s_use]数据导入失败".mysqli_error($conn)."<br/>";
  73.                 return "6/7 数据表[dic_s_use]数据导入失败".mysqli_error($conn);
  74.         }
  75.         // 7.关闭连接
  76.         // echo "7/7 数据库关闭连接开始...<br/>";
  77.         mysqli_close($conn);
  78.         // echo "7/7 数据库关闭连接完成<br/><br/><br/>";
  79.         return '200';
  80.         // echo "安装数据库完成<br/>";
  81. }
复制代码
到此这篇关于通过PHP安装数据库并使数据初始化的文章就介绍到这了,更多相关PHP数据初始化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

2

主题

52

回帖

150

积分

注册会员

积分
150
发表于 2024-4-24 22:51:14 | 显示全部楼层
每日一回
  • 打卡等级:即来则安
  • 打卡总天数:27
  • 打卡月天数:0
  • 打卡总奖励:424
  • 最近打卡:2024-08-20 23:24:38

6

主题

58

回帖

722

积分

高级会员

积分
722
发表于 2024-4-28 07:55:01 来自手机 | 显示全部楼层
谢谢楼主分享

0

主题

40

回帖

79

积分

注册会员

积分
79
发表于 2024-5-1 22:03:00 | 显示全部楼层
太棒了!感谢分享这个信息!

0

主题

46

回帖

92

积分

注册会员

积分
92
发表于 2024-5-19 13:49:05 | 显示全部楼层
好用好用

0

主题

51

回帖

103

积分

注册会员

积分
103
发表于 2024-5-21 23:47:46 | 显示全部楼层
我不确定这个信息的准确性,请再确认一下

0

主题

45

回帖

91

积分

注册会员

积分
91
发表于 2024-6-1 20:49:30 | 显示全部楼层
666666666666

1

主题

55

回帖

133

积分

注册会员

积分
133
发表于 2024-6-19 07:22:56 | 显示全部楼层
确实牛逼

1

主题

50

回帖

124

积分

注册会员

积分
124
发表于 2024-6-30 23:45:12 | 显示全部楼层
666666666666666666

3

主题

51

回帖

169

积分

注册会员

积分
169
发表于 2024-8-5 09:56:42 | 显示全部楼层
说得太好了,完全同意!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|爱云论坛 - d.taiji888.cn - 技术学习 免费资源分享 ( 蜀ICP备2022010826号 )|天天打卡

GMT+8, 2024-11-15 11:54 , Processed in 0.097696 second(s), 27 queries .

Powered by i云网络 Licensed

© 2023-2028 正版授权

快速回复 返回顶部 返回列表