這周的進度是第一,二題的練習,上周原本應該是三四題,結果只練了第三題,這周如果時間夠,要把第四題的進度補上。

這次解第一題,延續上周使用PDO的方式,實際用下來,除了仍然要手動打sql語法這點之外,整體對解題來說是有不小的幫助,至少不會像以前那樣常發生括號裏要放的變數打錯字或忘了放之類的,不過這次解題上幫助最大的應該是函式的代入,這是很早就想嘗試的做法,但是之前一直沒有時間好好的來研究,今天試了一下,果然很棒;原理就是把一些常用的資料庫操作包成函式來處理,其實PDO本身有提供前置語法的做法可以達到和函式相同的功能,不過那塊我還不是很清楚,再加上,我的需求會用到陣列的代入,目前找不到PDO有類似的用法,所以還是採用函式的方式來處理。

我目前做的函式有四個分別是刪除資料(delData($table,$seq)) / 新增資料(newData($table,$data)) / 修改資料(upData($table,$seq,$data)) / 整表取出(allData($table)),參數中的$data是陣列的資料,因此我在函式中會用迴圈的方式去取出陣列資料,再組合成需要的sql語句來送出,比如delData的內容;

function delData($table,$seq){
  global $pdo;
  $pdo->query("DELETE FROM ".$table." WHERE seq='".$seq."';");
}

這樣的做法,讓我省掉不少檢查sql語句的時間,只需要把參數代入就好了,目前還是有些地方是使用完整的語句,比如分頁的部份不是很麻煩,特別去寫一個函式好象也沒有省多少時間,所以類似這樣的情境我還在考慮要不要換成函式,比如計算資料表的總筆數這件事,做一個函式的確可以省不少時間,但是因為在題目中只有分頁會使用到這個功能,而分頁做到後來基本上都是直接複製貼上到所有需要分頁的功能去的,這樣算起來似乎弄個函式也不一定會省時間,不過就長期來看,這樣的做法還是很有幫助的。

最後修改日期: 2018-06-12

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。