正波 发表于 2024-4-13 15:10:27

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

一、前言

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

二、效果图

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


三、核心代码

<strong>原理:</strong>其实就是通过构建原生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 数据表创建成功<br/>";
        }else{
                // echo "5/7 数据表创建失败".mysqli_error($conn)."<br/>";
                return "5/7 数据表创建失败".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 数据表数据导入成功<br/>";
        }else{
                // echo "6/7 数据表数据导入失败".mysqli_error($conn)."<br/>";
                return "6/7 数据表数据导入失败".mysqli_error($conn);
        }
        // 7.关闭连接
        // echo "7/7 数据库关闭连接开始...<br/>";
        mysqli_close($conn);
        // echo "7/7 数据库关闭连接完成<br/><br/><br/>";
        return '200';
        // echo "安装数据库完成<br/>";
}到此这篇关于通过PHP安装数据库并使数据初始化的文章就介绍到这了,更多相关PHP数据初始化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:https://www.jb51.net/program/318485w1p.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 如何通过PHP安装数据库并使数据初始化