如何通過PHP安裝數(shù)據(jù)庫并使數(shù)據(jù)初始化
一、前言
有些CMS在部署的時候不用使用數(shù)據(jù)庫工具,而是通過數(shù)據(jù)庫安裝頁面就能完成數(shù)據(jù)庫創(chuàng)建和數(shù)據(jù)填充,所以自己就想動手做一個這樣的功能,這樣在給別人安裝系統(tǒng)的時候就不用再那么麻煩了,直接一鍵安裝解決了。
二、效果圖
輸入數(shù)據(jù)庫相關(guān)信息后,點擊安裝并有不同的提示。
三、核心代碼
原理:其實就是通過構(gòu)建原生SQL來創(chuàng)建并初始化數(shù)據(jù)庫,連接數(shù)據(jù)庫、創(chuàng)建數(shù)據(jù)庫、使用數(shù)據(jù)庫、創(chuàng)建數(shù)據(jù)表、新增數(shù)據(jù)、關(guān)閉連接。
創(chuàng)建前首先要準備以下內(nèi)容:
① 準備數(shù)據(jù)庫的基本信息:數(shù)據(jù)庫地址、數(shù)據(jù)庫名稱、用戶名、密碼
② 要創(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ù)庫 $conn = mysqli_connect($host, $user, $pwd); if (!$conn) { // echo "1/7 數(shù)據(jù)庫連接失敗<br/><br/>"; return '1/7 數(shù)據(jù)庫連接失敗'; }else{ // echo "1/7 數(shù)據(jù)庫連接完成<br/><br/>"; } // 2.創(chuàng)建數(shù)據(jù)庫 // 先刪除再創(chuàng)建 $sql = "DROP DATABASE {$db}"; if (mysqli_query($conn, $sql)) { // echo "2/7 數(shù)據(jù)庫刪除完成<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ù)庫創(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ù)庫開始...<br/>"; $sql = "use {$db}"; mysqli_query($conn,$sql); // echo "3/7 選擇數(shù)據(jù)庫完成<br/><br/>"; // 4.檢查數(shù)據(jù)庫是否存在 // echo "4/7 檢測數(shù)據(jù)庫開始...<br/>"; $sql = "DROP TABLE IF EXISTS `dic_s_use`"; mysqli_query($conn,$sql); // echo "4/7 檢測數(shù)據(jù)庫完成<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 '機構(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ù)庫關(guān)閉連接開始...<br/>"; mysqli_close($conn); // echo "7/7 數(shù)據(jù)庫關(guān)閉連接完成<br/><br/><br/>"; return '200'; // echo "安裝數(shù)據(jù)庫完成<br/>"; }
到此這篇關(guān)于通過PHP安裝數(shù)據(jù)庫并使數(shù)據(jù)初始化的文章就介紹到這了,更多相關(guān)PHP數(shù)據(jù)初始化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
CI框架學(xué)習(xí)筆記(一) - 環(huán)境安裝、基本術(shù)語和框架流程
本文是CI框架學(xué)習(xí)筆記的第一篇,主要介紹了CI框架的環(huán)境安裝,基本術(shù)語以及框架流程,非常的詳細,有需要的朋友可以參考下2014-10-10Yii2 hasOne(), hasMany() 實現(xiàn)三表關(guān)聯(lián)的方法(兩種)
這篇文章主要介紹了Yii2 hasOne(), hasMany() 實現(xiàn)三表關(guān)聯(lián)的方法(兩種),非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-02-02利用php實現(xiàn)一周之內(nèi)自動登錄存儲機制(cookie、session、localStorage)
本篇文章主要介紹了利用php實現(xiàn)一周之內(nèi)自動登錄存儲機制(cookie、session、localStorage),可以實現(xiàn)一周之內(nèi)免費登陸,感興趣的小伙伴們可以參考一下。2016-10-10php語言中使用json的技巧及json的實現(xiàn)代碼詳解
json是一種比較流行的數(shù)據(jù)交換格式之一,各大API網(wǎng)站均支持json。通過本篇文章給大家介紹php語言中使用json技巧以及php語言中json的實現(xiàn),對php語言中使用json技巧及json的實現(xiàn)代碼詳解感興趣的朋友一起來本文學(xué)習(xí)學(xué)習(xí)吧2015-10-10