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

Linux 下 mSQL 資料庫開發技術:安裝、配置、C API 與 w3-msql 腳本實戰

     編輯:MySQL 資料庫相關知識

mSQL 簡介

mSQL (Mini SQL) 是輕量級單用戶資料庫,因體積小、效能好,廣受 Web 開發者青睐。本文記錄 Linux 下安裝、配置、C API 整合與 w3-msql 腳本嵌入 HTML 實戰。

安裝步驟

  1. 官網 www.hughes.com.au 註冊下載 (如 msql-2.0.3.tar.gz)
  2. 解壓至目標目錄 (如 /usr/local):
    cp msql-2.0.3.tar.gz /usr/local/
    cd /usr/local
    tar zxvf msql-2.0.3.tar.gz
  3. 檔案安裝於 /usr/local/Hughes/
  4. 配置 /usr/local/Hughes/msql.conf:
    • msql_User = database (服務執行身分)
    • admin_User = admin (特權操作身分)
  5. 變更目錄擁有者:chown -R database /usr/local/Hughes
  6. 以 database 身分登入,啟動:cd /usr/local/Hughes/bin && ./msql2d &

C API 整合範例:用戶登入驗證

void main(int argc, char *argv[]) {
    // 解析表單提交的 username, password_usr
    // ...
    
    int sock = msqlConnect(NULL);           // 建立本機連接
    if (msqlSelectDB(sock, "test") == -1) { // 選擇資料庫
        // 輸出選擇失敗
        return;
    }
    
    char buff[256];
    sprintf(buff, "SELECT * FROM registered_user WHERE username='%s'", username);
    if (msqlQuery(sock, buff) == -1) {      // 執行查詢
        // 輸出查詢錯誤
        msqlClose(sock);
        return;
    }
    
    m_result *res = msqlStoreResult(sock);
    int numrow = msqlNumRows(res);
    
    if (numrow == 1) {
        m_row row = msqlFetchRow(res);
        if (strcmp(password_usr, row[2]) == 0) {
            // 輸出登入成功
        } else {
            // 輸出密碼錯誤
        }
    } else {
        // 輸出用戶不存在
    }
    
    msqlFreeResult(res);
    msqlClose(sock);
}

核心 API 函數速查

函數用途
msqlConnect()建立資料庫連接
msqlSelectDB()選擇資料庫
msqlQuery()執行 SQL 查詢
msqlStoreResult()取得結果集指標
msqlNumRows()結果列數
msqlFetchRow()取得下一列資料
msqlFreeResult()釋放結果集
msqlClose()關閉連接

w3-msql 腳本嵌入 HTML

  • 無需編譯,由 w3-msql CGI 直譯執行
  • 類 C 語法,支援資料庫操作、流程控制、變數
  • 適用快速原型、簡單動態頁面

登入驗證腳本片段

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=iso-8859-1">
</HEAD>
<BODY>
<?msql
  // 解析表單
  // 連接、查詢、驗證邏輯同 C API
?>
</BODY>
</HTML>

總結

mSQL 以極簡架構支援 Web 資料庫應用,C API 適合效能敏感場合,w3-msql 適合快速開發。雖非主流,但理解其設計哲學有助於掌握輕量級資料庫核心概念。

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