首頁 > 軟體

PHP連線MySql資料庫方法簡化版

2022-07-25 18:04:16

寫這個PHP連線資料庫靜態工具類之前,是由於當時學習C#的asp.net。老師編寫了一個連線資料庫的靜態工具類,發現使用此類,每次只需要寫sql語句,而不再需要進行連線建立,關閉等等。方便其他操作,節約時間。

轉眼一年半,如今php課程需要寫一個小專案,於是第一件事就是編寫一個連線資料庫的靜態工具類,php和asp.net的語法極其的相似。

在使用此類之前,可以普及兩點知識:

PHP中使用靜態的呼叫,不同於其他程式語言,它的靜態呼叫為:

類名::$靜態屬性

類名::靜態方法()

而Java、C#等程式語言都是通過:

類名.靜態屬性

類名.靜態方法()

靜態方法的優點:

(1)在程式碼的任何地方都可以用,不需要範例物件就能存取靜態屬性或方法;

(2)類的每個範例都可以存取類中定義的靜態屬性,可以利用靜態屬性來設定值,該值可以被類的所有物件使用,方便控制資料庫引數,連線物件的建立與關閉;

DBHelper.php 靜態工具類

<?php
    /**該PHP檔案為了連線資料庫方便
     * 為連線資料庫提供靜態方法
     */
    header("Content-type: text/html;charset=utf-8");
    class DBHelper {
        static $sqlName = "127.0.0.1";
        static $userName = "root";
        static $passWord = "123456";
        static $dbName = "test";
        //連線資料庫
        static function dbConn() {
            $conn = mysqli_connect(self::$sqlName, self::$userName,
                    self::$passWord, self::$dbName);
            if ($conn == false) {
                echo "<script>alert('資料庫連線失敗')</script>";
            }
            //設定連線物件編碼
            mysqli_query($conn, "set names utf8");
            return $conn;
        }
        //查詢資料
        //param1:查詢型別,param2:執行語句
        //param1引數型別:  0單個陣列,1多個陣列。
        static function select($state, $mysql):array {
            $conn = self::dbConn(); //獲得連線物件
            $sql = $mysql;
            $query = mysqli_query($conn, $sql);
            if ($state == 1) {
                $result = mysqli_fetch_all($query,MYSQLI_ASSOC);
            } else {
                $result = mysqli_fetch_assoc($query);
            }
            // 釋放結果集
            mysqli_free_result($query);
            self::dbClose($conn); //釋放連線物件
            if ($result == null) { //如果結果為空,則返回空資料集
                return array();
            }
            return $result;
        }
        //增加、刪除、修改資料
        //param1:執行型別;param2:執行語句
        //param1引數型別:1增加,2修改,3刪除。
        static function sqlHelper($state, $mysql):int {
            $conn = self::dbConn(); //獲得連線物件
            $sql = $mysql;
            $query = mysqli_query($conn, $sql);
            //判斷狀態,做出相應提示。
            //$sts = $state==3?"刪除":($state==2?"修改":($state==1?"增加":$state));
            self::dbClose($conn); //釋放連線物件
            if ($query){
                return 1;  //有內容變化
                //return $sts."成功";
            }
            else{
                return 0;  //無內容變化
                //return $sts."失敗";
            }
        }
        //關閉連線
        static function dbClose($conn) {
            $conn ->Close();
        }
    }
?>

Test.php 用來測試資料

//查詢單個資料
$select = DBHelper ::select(0, "select * from XXX where xx = '$xx'");
//查詢多個資料
$selectAll = DBHelper ::select(1,"select * from XXX");
//新增資料
$insert = DBHelper ::sqlHelper(1, "insert into XXX (xx,xx,xx) values ('$xx','$xx','$xx')");
//修改資料
$update = DBHelper ::sqlHelper(2, "update XXX set xx = '$xx',xx = '$xx',xx = '$xx', where xx = '$xx'");
//刪除資料
$delete = DBHelper ::sqlHelper(3, "delete from XXX where xx = '$xx'");

前兩條測試資料,都是查詢,設定的返回引數分別為mysqli_fetch_assoc、mysqli_fetch_all,這兩個引數返回的都是array,只不過裡面有單個資料或多個資料。

mysqli_fetch_assoc:

mysqli_fetch_all:

後三條對應的是增刪改,返回的int型別引數,可以判斷執行是否成功。

到此這篇關於PHP連線MySql資料庫方法簡化版的文章就介紹到這了,更多相關PHP連線MySql內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com