5-3
寫入資料庫
一、MySQL的insert 語法
- 新增資料的SQL語法如下:
insert [into] 資料表名稱 [(欄位1,欄位2...)] values (值1,值2...)
- 中括號的部份代表可以省略。
二、加入儲存機制
- 由於有隱藏 op=insert_action,所以,先在 switch 中多一組對應設定
case "insert_action":
$action_id = insert_action();
header("location: ../index.php?action_id={$action_id}");
exit;
- 設定要去執行 insert_action() 函數,也就是用來新增活動到資料庫,並希望他能傳回活動編號,以便儲存後,可以直接連到前台的模組首頁index.php去觀看該活動的詳細內容。
- 製作 insert_action() 函數時,寫入時變數務必針對特殊符號進行處理(盡量能存)
$title = clean_var('title', '活動名稱');
$action_date = clean_var('action_date', '活動日期');
$end_date = clean_var('end_date', '截止日期');
$enable = clean_var('enable', '使否啟用');
$content = clean_var('content', '活動內容');
- 寫SQL語法時,資料表名稱需用 $xoopsDB->prefix('資料表') 加入前置字串
$sql = "INSERT INTO `" . $xoopsDB->prefix('actions') . "`
( `title`, `content`, `action_date`, `end_date`, `uid`, `enable`)
VALUES ('{$title}', '{$content}', '{$action_date}', '{$end_date}', '{$uid}', '{$enable}')";
$xoopsDB->query($sql) or web_error($sql);
$action_id = $xoopsDB->getInsertId();
-
$xoopsDB->query($sql) 可用來送出請求
-
web_error($sql); 是用來呈現存取資料庫錯誤用的函數,內建於 tadtools 模組中
-
$xoopsDB->getInsertId(); 用來取得新增資料的編號