Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

ECmall 批量匯入會員帳號:MD5 密碼與 Excel 參數化 SQL

編輯:Linux 教學

ECmall 後台無批量建立會員功能,直接操作 ecm_member 資料表,關鍵在於密碼必須預先以 MD5 雜湊存入,否則前台無法登入。

單筆測試 SQL

INSERT INTO jcom_mall.ecm_member VALUES (
  NULL, 'yourtion', 'mail@yourtion.com',
  '5fa2db591ebb44529673957ed8b738fc',  -- MD5('yourpassword')
  '', '0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  '0', NULL, NULL, '0', '0', NULL, '0', NULL, ''
);

Excel 參數化公式

假設 A 欄為帳號,其餘欄位固定或留空:

=CONCATENATE(
  "INSERT INTO jcom_mall.ecm_member VALUES (NULL, '",
  A1, "', 'mail@yourtion.com', '5fa2db591ebb44529673957ed8b738fc', ",
  "'', '0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, ",
  "'0', NULL, NULL, '0', '0', NULL, '0', NULL, '');"
)

關鍵細節

  1. 密碼必須 MD5:ECmail 登入驗證直接比對 MD5(input) == password 欄位,明文密碼無法通過。
  2. Excel 公式轉義:單引號在公式中需用雙引號包裹,如 '\"'\" 產生 '。
  3. NULL vs 空字串:NULL 不加引號,'' 為空字串,依欄位定義選擇。
  4. 自動遞增 ID:第一欄 NULL 讓資料庫自動填入 user_id。

擴充建議

  • 若需匯入真實郵件、姓名等,在 Excel 多欄位對應,公式改為 \"', B1, '\", '\"', C1, '\" 等。
  • 大量資料(>10萬筆)建議改用 LOAD DATA INFILE:先輸出 CSV,再 LOAD DATA INFILE 'file.csv' INTO TABLE ecm_member FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\n' (user_name, email, password, ...)。
  • 匯入後建議跑腳本驗證:SELECT COUNT(*) FROM ecm_member WHERE password = MD5('test') 確認雜湊正確。

此方法通用於所有「密碼存雜湊、無批量介面」的 PHP 專案,核心是「離線產生雜湊 → 參數化 SQL → 批次執行」。

Copyright © Windows教程網 All Rights Reserved