狠狠撸
Submit Search
哈佛公開課程_E-75 建構動態網站 第4講_SQL
?
1 like
?
725 views
奕孝 陳
1 of 24
Download now
Download to read offline
More Related Content
哈佛公開課程_E-75 建構動態網站 第4講_SQL
1.
建構動態網站 第4講 SQL 講師:David Malan 哈佛大學公開課 by
Bater 2014.5 課程連結
2.
本講大綱 ● 程式碼品質 ● 框架引用 ●
XPath ● fgetcsv ● SQL
3.
程式碼(網站)品質 ● 使用者可能會有意料之外或惡意操作(如負 數,空白,全形,保留字<>"$#(-?... ),可能造 成程式意外或毀損 ●
基礎的網站防護:SQL injection資料隱碼攻 擊,Cross-Site Scripting(XSS)跨站腳本攻 擊 ● 有大量複製貼上的片段通常不是好程式,要 思考是否可以重複運用 ● 是否可用loop(迴圈)取代
4.
嘗試利用車牌進行 sql injection
5.
程式碼(網站)品質 (續) ● 函式與變數命名是否有意義(而非xx,tt,aa..) ●
是否有適當註解 ● 每行程式不超過80字元 (約編輯器寬),不 過不強制,只要風格合理且一致即可 ●
6.
網頁框架的應用 ● 多個頁面有相同的區塊,通常不會複製貼上 多次相同程式碼;而是會將區塊獨立出來, 每個頁面去重複引用。 ● 例如: 首頁.php 訂單.php 主選單 主選單 主選單.php 首頁.php 訂單.php
7.
語法 ● include() ○ 如果頁面不存在,會略過(待確認) ●
require() ○ EX. require(“header.php”) ○ 如果該頁面不存在,php解析會馬上終止 ○ 建議使用,比較方便debug ● include_once() ● require_once() ○ 只會引用一次,避免巢狀無限引用
8.
元素頁面的路徑 ● 為了避免讓使用者直接訪問,可利用上周所 講的方法,放在無法訪問的路徑下 ● EX:
谤别辩耻颈谤别(“../濒颈产/丑别补诲别谤.辫丑辫”)
9.
利用函式取代重複的程式 ● 看起來有點多此一舉,但隨著架構越來越複 雜,比較能靈活運用 ● 例如傳入參數
10.
XPath
11.
範例資料結構 ps.xml的id屬性不可用數字開頭
12.
利用foreach 利用XPath 簡化後 (child::可省略)
13.
xpath(“//item[@id=’$var’]”); 完整寫法如下: 遍尋所有的目錄,優點是省事,缺點是犧牲效 能
14.
XPath ● 因為有了XPath,XML可以作為小型的資料 庫使用 ● 相較之下,CSV沒有類似的API可以查詢
15.
各种资料结构
16.
● fgetcsv (PHP取得csv的方法) ●
?!==?運算子,除了判斷值之外也會判斷資 料型態,因為PHP對於資料型態很寬鬆。 例如:(===相對於==) ○ false !== 0 回傳 true ○ false != 0 回傳 false ● fputcsv (PHP將資料轉為csv的方法) fgetcsv與fputcsv
17.
fgetcsv 範例
18.
總結XML與CSV的優缺點 XML優點: ● XPath可直接查詢 ● 有結構與層級概念 ●
不需特殊的工具就可 編輯 缺點: ● 檔案教CSV大(多開頭 結尾字元) ● 沒有權限控管、資料 型態檢查、寫入限制 CSV優點: ● 檔案小 缺點: ● 無法直接查詢,一定 要遍歷整份文件 ● 沒有階層概念
19.
SQL (Structured Query
Language) 結構化查詢語言 (終於要進入正題了)
20.
SQL ● SQL語言有共通的標 準,基本上通用,但是 每家會有少部分自己獨 特的寫法 ● MySQL跟PHP有很好 的搭配(因為都不用錢) ●
右圖為常見的SQL指令 ● 推薦使用phpMyAdmin 管理 (免空上也是)
21.
建資料庫時的心法 ● char是故定長度,好處是索引方便 ● varchar可以節省空間 ●
text,如果內容會超過64kb建議使用(巨量 資料),實際上是存放在硬碟的某處,這邊只 是留個指向 ● 是否有負值、時間戳記 ● 是否允許為空 ● 預設值 ● 自動增值
22.
● 主鍵primary key,MySQL只能設一個主鍵 (預設為索引且唯一) ●
唯一值,非主鍵,但是唯一 ● 索引index,事先儲存資料的樹狀描述,需 要花額外的硬碟空間,但是搜尋效率會大幅 提高,否則就會查找每一筆資料 ● fulltext 全文索引
23.
數據庫引擎 ● MyISAM(預設),高效但不支援transactions ● InnoDB
(下周會講) ● MEMORY只存在記憶體中,需要很多快取 查詢儲存又馬上丟棄可使用 ● FEDERATED用於大量數據,可進行數據 分區 ● ARCHIVE提供很好的壓縮 ● CSV類似前面提的CSV
24.
實作範例 程式pdf瀏覽
Download