如何通過PHP安裝數(shù)據(jù)庫(kù)并使數(shù)據(jù)初始化
一、前言
有些CMS在部署的時(shí)候不用使用數(shù)據(jù)庫(kù)工具,而是通過數(shù)據(jù)庫(kù)安裝頁(yè)面就能完成數(shù)據(jù)庫(kù)創(chuàng)建和數(shù)據(jù)填充,所以自己就想動(dòng)手做一個(gè)這樣的功能,這樣在給別人安裝系統(tǒng)的時(shí)候就不用再那么麻煩了,直接一鍵安裝解決了。
二、效果圖
輸入數(shù)據(jù)庫(kù)相關(guān)信息后,點(diǎn)擊安裝并有不同的提示。

三、核心代碼
原理:其實(shí)就是通過構(gòu)建原生SQL來創(chuàng)建并初始化數(shù)據(jù)庫(kù),連接數(shù)據(jù)庫(kù)、創(chuàng)建數(shù)據(jù)庫(kù)、使用數(shù)據(jù)庫(kù)、創(chuàng)建數(shù)據(jù)表、新增數(shù)據(jù)、關(guān)閉連接。
創(chuàng)建前首先要準(zhǔn)備以下內(nèi)容:
① 準(zhǔn)備數(shù)據(jù)庫(kù)的基本信息:數(shù)據(jù)庫(kù)地址、數(shù)據(jù)庫(kù)名稱、用戶名、密碼
② 要?jiǎng)?chuàng)建的表及表結(jié)構(gòu)
③ 要初始化的數(shù)據(jù)
public function createDb($data)
{
$host = $data['mysqlHostname'];
$user = $data['mysqlUsername'];
$pwd = $data['mysqlPassword'];
$db = $data['mysqlDatabase'];
// 1.連接數(shù)據(jù)庫(kù)
$conn = mysqli_connect($host, $user, $pwd);
if (!$conn) {
// echo "1/7 數(shù)據(jù)庫(kù)連接失敗<br/><br/>";
return '1/7 數(shù)據(jù)庫(kù)連接失敗';
}else{
// echo "1/7 數(shù)據(jù)庫(kù)連接完成<br/><br/>";
}
// 2.創(chuàng)建數(shù)據(jù)庫(kù)
// 先刪除再創(chuàng)建
$sql = "DROP DATABASE {$db}";
if (mysqli_query($conn, $sql)) {
// echo "2/7 數(shù)據(jù)庫(kù)刪除完成<br/>";
}else{
// echo "2/7". mysqli_error($conn)."<br/><br/>";
// return "2/7 ".mysqli_error($conn);
}
// 創(chuàng)建
$sql = "create database {$db}";
if (mysqli_query($conn, $sql)) {
// echo "2/7 數(shù)據(jù)庫(kù)創(chuàng)建完成<br/>";
}else{
// echo "2/7". mysqli_error($conn)."<br/><br/>";
return "2/7 ".mysqli_error($conn);
}
// 3.使用數(shù)據(jù)表
// echo "3/7 選擇數(shù)據(jù)庫(kù)開始...<br/>";
$sql = "use {$db}";
mysqli_query($conn,$sql);
// echo "3/7 選擇數(shù)據(jù)庫(kù)完成<br/><br/>";
// 4.檢查數(shù)據(jù)庫(kù)是否存在
// echo "4/7 檢測(cè)數(shù)據(jù)庫(kù)開始...<br/>";
$sql = "DROP TABLE IF EXISTS `dic_s_use`";
mysqli_query($conn,$sql);
// echo "4/7 檢測(cè)數(shù)據(jù)庫(kù)完成<br/><br/>";
// 5.創(chuàng)建數(shù)據(jù)表 批量創(chuàng)建
// echo "5/7 創(chuàng)建數(shù)據(jù)表開始...<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 '機(jī)構(gòu)/醫(yī)院代碼',
`status` enum('0','1') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '1' COMMENT '狀態(tài):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 數(shù)據(jù)表[dic_s_use]創(chuàng)建成功<br/>";
}else{
// echo "5/7 數(shù)據(jù)表[dic_s_use]創(chuàng)建失敗".mysqli_error($conn)."<br/>";
return "5/7 數(shù)據(jù)表[dic_s_use]創(chuàng)建失敗".mysqli_error($conn);
}
// 6.添加數(shù)據(jù)
// echo "6/7 添加數(shù)據(jù)開始...<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 數(shù)據(jù)表[dic_s_use]數(shù)據(jù)導(dǎo)入成功<br/>";
}else{
// echo "6/7 數(shù)據(jù)表[dic_s_use]數(shù)據(jù)導(dǎo)入失敗".mysqli_error($conn)."<br/>";
return "6/7 數(shù)據(jù)表[dic_s_use]數(shù)據(jù)導(dǎo)入失敗".mysqli_error($conn);
}
// 7.關(guān)閉連接
// echo "7/7 數(shù)據(jù)庫(kù)關(guān)閉連接開始...<br/>";
mysqli_close($conn);
// echo "7/7 數(shù)據(jù)庫(kù)關(guān)閉連接完成<br/><br/><br/>";
return '200';
// echo "安裝數(shù)據(jù)庫(kù)完成<br/>";
}到此這篇關(guān)于通過PHP安裝數(shù)據(jù)庫(kù)并使數(shù)據(jù)初始化的文章就介紹到這了,更多相關(guān)PHP數(shù)據(jù)初始化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 總結(jié)PHP中初始化空數(shù)組的最佳方法
- PHP cURL初始化和執(zhí)行方法入門級(jí)代碼
- php初始化對(duì)象和析構(gòu)函數(shù)的簡(jiǎn)單實(shí)例
- php 靜態(tài)變量的初始化
- 完美解決phpstudy安裝后mysql無法啟動(dòng)(無需刪除原數(shù)據(jù)庫(kù),無需更改任何配置,無需更改端口)直接共存
- PHP中安裝使用mongodb數(shù)據(jù)庫(kù)
- phpnow重新安裝mysql數(shù)據(jù)庫(kù)的方法
- PHP開發(fā)環(huán)境配置(MySQL數(shù)據(jù)庫(kù)安裝圖文教程)
相關(guān)文章
php設(shè)計(jì)模式之工廠模式用法經(jīng)典實(shí)例分析
這篇文章主要介紹了php設(shè)計(jì)模式之工廠模式用法,結(jié)合具體實(shí)例形式分析了php工廠模式相關(guān)原理、定義、用法及操作注意事項(xiàng),需要的朋友可以參考下2019-09-09
php操縱mysqli數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄猵hp操縱mysqli數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-09-09
怎樣給PHP源代碼加密?PHP二進(jìn)制加密與解密的解決辦法
本篇文章小編為大家介紹,怎樣給PHP源代碼加密?PHP二進(jìn)制加密與解密的解決辦法。需要的朋友參考下2013-04-04
php后臺(tái)如何避免用戶直接進(jìn)入方法實(shí)例
這篇文章介紹了php后臺(tái)如何避免用戶直接進(jìn)入方法實(shí)例,有需要的朋友可以參考一下2013-10-10
安裝docker和docker-compose實(shí)例詳解

