如何通過PHP安裝數據庫并使數據初始化
一、前言
有些CMS在部署的時候不用使用數據庫工具,而是通過數據庫安裝頁面就能完成數據庫創(chuàng)建和數據填充,所以自己就想動手做一個這樣的功能,這樣在給別人安裝系統(tǒng)的時候就不用再那么麻煩了,直接一鍵安裝解決了。
二、效果圖
輸入數據庫相關信息后,點擊安裝并有不同的提示。
三、核心代碼
原理:其實就是通過構建原生SQL來創(chuàng)建并初始化數據庫,連接數據庫、創(chuàng)建數據庫、使用數據庫、創(chuàng)建數據表、新增數據、關閉連接。
創(chuàng)建前首先要準備以下內容:
① 準備數據庫的基本信息:數據庫地址、數據庫名稱、用戶名、密碼
② 要創(chuàng)建的表及表結構
③ 要初始化的數據
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.創(chuàng)建數據庫 // 先刪除再創(chuàng)建 $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); } // 創(chuàng)建 $sql = "create database {$db}"; if (mysqli_query($conn, $sql)) { // echo "2/7 數據庫創(chuàng)建完成<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.創(chuàng)建數據表 批量創(chuàng)建 // echo "5/7 創(chuàng)建數據表開始...<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 '機構/醫(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 數據表[dic_s_use]創(chuàng)建成功<br/>"; }else{ // echo "5/7 數據表[dic_s_use]創(chuàng)建失敗".mysqli_error($conn)."<br/>"; return "5/7 數據表[dic_s_use]創(chuàng)建失敗".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數據初始化內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
CI框架學習筆記(一) - 環(huán)境安裝、基本術語和框架流程
本文是CI框架學習筆記的第一篇,主要介紹了CI框架的環(huán)境安裝,基本術語以及框架流程,非常的詳細,有需要的朋友可以參考下2014-10-10Yii2 hasOne(), hasMany() 實現三表關聯的方法(兩種)
這篇文章主要介紹了Yii2 hasOne(), hasMany() 實現三表關聯的方法(兩種),非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-02-02利用php實現一周之內自動登錄存儲機制(cookie、session、localStorage)
本篇文章主要介紹了利用php實現一周之內自動登錄存儲機制(cookie、session、localStorage),可以實現一周之內免費登陸,感興趣的小伙伴們可以參考一下。2016-10-10