如何通過(guò)PHP安裝數(shù)據(jù)庫(kù)并使數(shù)據(jù)初始化
一、前言
有些CMS在部署的時(shí)候不用使用數(shù)據(jù)庫(kù)工具,而是通過(guò)數(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í)就是通過(guò)構(gòu)建原生SQL來(lái)創(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ù)名稱(chēng)、用戶(hù)名、密碼
② 要?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ù)開(kāi)始...<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ù)開(kāi)始...<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ù)表開(kāi)始...<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ù)開(kāi)始...<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)閉連接開(kāi)始...<br/>"; mysqli_close($conn); // echo "7/7 數(shù)據(jù)庫(kù)關(guān)閉連接完成<br/><br/><br/>"; return '200'; // echo "安裝數(shù)據(jù)庫(kù)完成<br/>"; }
到此這篇關(guān)于通過(guò)PHP安裝數(shù)據(jù)庫(kù)并使數(shù)據(jù)初始化的文章就介紹到這了,更多相關(guān)PHP數(shù)據(jù)初始化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 總結(jié)PHP中初始化空數(shù)組的最佳方法
- PHP cURL初始化和執(zhí)行方法入門(mén)級(jí)代碼
- php初始化對(duì)象和析構(gòu)函數(shù)的簡(jiǎn)單實(shí)例
- php 靜態(tài)變量的初始化
- 完美解決phpstudy安裝后mysql無(wú)法啟動(dòng)(無(wú)需刪除原數(shù)據(jù)庫(kù),無(wú)需更改任何配置,無(wú)需更改端口)直接共存
- PHP中安裝使用mongodb數(shù)據(jù)庫(kù)
- phpnow重新安裝mysql數(shù)據(jù)庫(kù)的方法
- PHP開(kāi)發(fā)環(huán)境配置(MySQL數(shù)據(jù)庫(kù)安裝圖文教程)
相關(guān)文章
CI框架學(xué)習(xí)筆記(一) - 環(huán)境安裝、基本術(shù)語(yǔ)和框架流程
本文是CI框架學(xué)習(xí)筆記的第一篇,主要介紹了CI框架的環(huán)境安裝,基本術(shù)語(yǔ)以及框架流程,非常的詳細(xì),有需要的朋友可以參考下2014-10-10laravel5實(shí)現(xiàn)微信第三方登錄功能
這篇文章主要介紹了laravel5實(shí)現(xiàn)微信第三方登錄功能,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-12-12Yii2 hasOne(), hasMany() 實(shí)現(xiàn)三表關(guān)聯(lián)的方法(兩種)
這篇文章主要介紹了Yii2 hasOne(), hasMany() 實(shí)現(xiàn)三表關(guān)聯(lián)的方法(兩種),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-02-02利用php實(shí)現(xiàn)一周之內(nèi)自動(dòng)登錄存儲(chǔ)機(jī)制(cookie、session、localStorage)
本篇文章主要介紹了利用php實(shí)現(xiàn)一周之內(nèi)自動(dòng)登錄存儲(chǔ)機(jī)制(cookie、session、localStorage),可以實(shí)現(xiàn)一周之內(nèi)免費(fèi)登陸,感興趣的小伙伴們可以參考一下。2016-10-10php語(yǔ)言中使用json的技巧及json的實(shí)現(xiàn)代碼詳解
json是一種比較流行的數(shù)據(jù)交換格式之一,各大API網(wǎng)站均支持json。通過(guò)本篇文章給大家介紹php語(yǔ)言中使用json技巧以及php語(yǔ)言中json的實(shí)現(xiàn),對(duì)php語(yǔ)言中使用json技巧及json的實(shí)現(xiàn)代碼詳解感興趣的朋友一起來(lái)本文學(xué)習(xí)學(xué)習(xí)吧2015-10-10php生成縮略圖示例代碼分享(使用gd庫(kù)實(shí)現(xiàn))
分享一個(gè)利用php的GD庫(kù)生成縮略圖的例子,大家參考使用吧2014-01-01PHP圖像識(shí)別技術(shù)原理與實(shí)現(xiàn)
本篇文章主要介紹了PHP圖像識(shí)別技術(shù)原理與實(shí)現(xiàn),這個(gè)平時(shí)做的密碼驗(yàn)證有異曲同工之處,有需要的可以了解一下。2016-10-10