首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

PHP 實作 MySQL 資料庫操作類(dbClass)完整教學

     編輯:MySQL 資料庫相關知識

設計目標

封裝重複的資料庫連線、查詢、結果處理邏輯,提升開發效率,專案間可直接複用。

核心代碼(dbclass.php)

<?php
$db_username = "myusername";
$db_password = "mypassword";
$db_database = "mydatabase";
$db_hostname = "localhost";

class dbClass {
    var $username, $password, $database, $hostname;
    var $link, $result;

    function __construct($username, $password, $database, $hostname="localhost") {
        $this->username = $username;
        $this->password = $password;
        $this->database = $database;
        $this->hostname = $hostname;
    }

    function connect() {
        $this->link = mysql_connect($this->hostname, $this->username, $this->password)
            or die("Sorry, can not connect to database");
        return $this->link;
    }

    function select() {
        mysql_select_db($this->database, $this->link);
    }

    function query($sql) {
        if ($this->result = mysql_query($sql, $this->link)) return $this->result;
        else {
            echo "SQL Error: $sql\nMySQL Error: " . mysql_error();
            return false;
        }
    }

    function getarray($result) {
        return @mysql_fetch_array($result);
    }

    function getfirst($sql) {
        return @mysql_fetch_array($this->query($sql));
    }

    function getcount($sql) {
        return @mysql_num_rows($this->query($sql));
    }

    function update($sql) { return $this->query($sql); }
    function insert($sql) { return $this->query($sql); }

    function getid() { return mysql_insert_id(); }
}

// 自動連線並選擇資料庫
$db = new dbClass($db_username, $db_password, $db_database, $db_hostname);
$db->connect();
$db->select();
?>

使用範例

引入類別

include_once("dbclass.php");

查詢迴圈

$result = $db->query("SELECT * FROM mytable");
while ($row = $db->getarray($result)) {
    echo $row['id'] . " ";
}

單行查詢(登入驗證)

if ($user = $db->getfirst("SELECT * FROM user WHERE username='$username' AND password='$password'")) {
    echo "歡迎 $username,您的 ID 是 $user[id]";
} else {
    echo "用戶名或密碼錯誤!";
}

統計總筆數(分頁用)

$total = $db->getcount("SELECT * FROM mytable");
echo "共有 $total 條信息";

更新與插入

$db->update("UPDATE user SET password='$new_pwd' WHERE userid='$uid'");
$db->insert("INSERT INTO user (userid,username,password) VALUES (NULL,'$username','$password')");
$new_id = $db->getid();

擴展建議

  • 新增 delete()、fetchAll()、beginTransaction()/commit() 等方法
  • 錯誤處理改用 Exception 機制
  • 支援 Prepared Statements 防 SQL 注入
  • 加入查詢日誌、慢查詢監控

重要提醒

mysql_* 函數已棄用(PHP 5.5+)並移除(PHP 7+)。現代專案請改用 PDO 或 mysqli,本類僅供教學參考架構設計思想。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved