Download presentation
Presentation is loading. Please wait.
Published byAdi Suryadi Budiaman Modified 5年之前
1
PHP+MySQL互動式網頁程式設計班 PHP+MySQL資料庫語法與應用 講師:林業峻 CSIE, NTU 6 / 26, 2010
2
課程大綱 MySQL資料庫概論 使用phpMyAdmin MySQL基礎語法 用PHP存取MySQL資料庫
3
資料的架構 MySQL中資料儲存的儲存由以下元件構成: 資料庫 資料表 欄位 資料 欄位 資料表 資料 … 資料表 資料庫 … 資料表 …
(會員名單) 姓名 帳號 密碼 Joe joe123 1234 資料 … 資料表 (留言板) 留言人 主題 留言時間 來源IP 內容 資料庫 Joe 問候 09/04/01 xxx.xxx 你好… … 資料表 (相簿) 拍攝者 主題 發佈時間 檔案名稱 檔案大小 Joe 風景 09/04/01 pic.jpg 100KB …
4
課程大綱 MySQL資料庫概論 使用phpMyAdmin MySQL基礎語法 用PHP存取MySQL資料庫
5
使用phpMyAdmin 登入phpMyAdmin主機後,輸入帳號密碼後試著 進行以下操作: 建立資料表 編輯欄位 新增資料 修改資料
刪除資料
6
建立資料表 點選左方資料庫名稱 資料庫
7
建立資料表 輸入資料表名稱addressbook並輸入欄位數7 建立資料表 設定欄位數
8
編輯欄位 填寫欄位資訊 常用型態:INT(整數), VARCHAR(可變字元), DATE(日期), TEXT(大量文字), BLOB(二進位資料), BOOL(true or false) 設定欄位(名稱, 型態, 長度) 設定選項 (Null, 預設值, 附加) 索引(主鍵, 索引鍵, 唯一鍵)
9
資料型態表 資料型態 說明 BOOL 0與1 (true or false) TINYINT
有符號的範圍是-128到127,無符號的範圍是0到255。 SMALLINT 有符號的範圍是-32768到32767,無符號的範圍是0到65535。 MEDIUMINT 有符號的範圍是 到 ,無符號的範圍是0到 。 INT 有符號的範圍是 到 ,無符號的範圍是0到 。 INTEGER INT的同義詞。 BIGINT 有符號的範圍是 到 ,無符號的範圍是0到 。 FLOAT 單精密浮點數字。不能無符號。允許的值是 E+38到 E-38,0 和 E-38到 E+38。 DOUBLE 雙精密)浮點數字。不能無符號。允許的值是 E+308到 E-308、 0和 E-308到 E+308。 DOUBLE PRECISION DOUBLE的同義詞。 REAL DECIMAL DECIMAL值的最大範圍與DOUBLE相同。 NUMERIC DECIMAL的同義詞。 DATE 日期。支援的範圍是' '到' '。 DATETIME 日期和時間組合。支援的範圍是' :00:00'到' :59:59' TIMESTAMP 時間戳記。範圍是' :00:00'到2037年的某時。 TIME 一個時間。範圍是'-838:59:59'到'838:59:59'。 YEAR 2或4位數字格式的年(內定是4位)。允許的值是1901到2155。 CHAR 固定長度,1 ~ 255個字元。 VARCHAR 可變長度,1 ~ 255個字元。 TINYBLOB 最大長度為255(2^8-1)個Bytes。 TINYTEXT 最大長度為255(2^8-1)個字元。 BLOB 最大長度為65535(2^16-1)個Bytes。 TEXT 最大長度為65535(2^16-1)個字元。 MEDIUMBLOB 最大長度為 (2^24-1)個Bytes。 MEDIUMTEXT 最大長度為 (2^24-1)個字元。 LONGBLOB 最大長度為 (2^32-1)個Bytes。 LONGTEXT 最大長度為 (2^32-1)個字元。 ENUM 一個ENUM最多能有65535不同的值。 SET 一個SET最多能有64個成員。
10
資料表建立完成 觀察建立完成結果 以上動作對應之SQL語法
11
新增資料 按下新增並填寫內容 輸入資料
12
新增資料 觀察新增結果 新增資料之SQL語法
13
修改資料 點選瀏覽按下修改 列出資料之SQL語法 修改
14
修改資料 輸入要修改的資料 輸入資料
15
修改資料 觀察修改結果 修改資料之SQL語法
16
刪除資料 選擇刪除 刪除資料之SQL語法 刪除
17
課程大綱 MySQL資料庫概論 使用phpMyAdmin MySQL基礎語法 用PHP存取MySQL資料庫
18
MySQL基礎語法 MySQL資料庫可以使用SQL語法來存取資料。
當我們使用phpMyAdmin時,其實我們的動作最 後會被phpMyAdmin轉換成SQL程式碼而產生對 應的動作。 SQL語法功能相當多,可用來管理使用者、管理 資料庫、管理資料表、存取資料…等。 在互動式網頁中,常用來存取資料的語法如下: 插入:INSERT 選取:SELECT 更新:UPDATE 刪除:DELETE
19
插入:INSERT 功能:新增一筆資料 常用語法: 使用範例: 插入姓名欄位為Joe的資料
INSERT INTO 資料表(欄位1,欄位2,...,欄位n) VALUES('值1', '值2',..., '值n') 使用範例: 插入姓名欄位為Joe的資料 insert into 資料表名(name) values('Joe')
20
練習 在MySQL中的addressbook資料表中, 使用SQL語 法插入三筆資料 (姓名, 電話, 地址, email, 生日)
第一筆資料請用自己的姓名
21
選取:SELECT 功能:將指定的欄位輸出 常用語法: 使用範例: 依據姓名欄位排序輸出 依據姓名欄位反向排序輸出
SELECT 欄位 FROM 資料表 WHERE 限制敘述 ORDER BY 排序敘述 使用範例: 依據姓名欄位排序輸出 select * from 資料表名 order by name 依據姓名欄位反向排序輸出 select * from 資料表名 order by name desc 輸出姓名欄位為Joe的資料 select * from 資料表名 where name='Joe' 輸出姓名欄位為Joe且電話為1234的資料 select * from 資料表名 where name='Joe' AND tel='1234'
22
練習 在MySQL中的addressbook資料表中, 使用SQL語 法顯示所有資料
23
更新:UPDATE 功能:更新指定的欄位 常用語法: 使用範例: 更新姓名欄位為Joe的資料之電話號碼
UPDATE 資料表 SET 欄位= '值' WHERE 限制敘述 使用範例: 更新姓名欄位為Joe的資料之電話號碼 update 資料表名 set tel = ' ' where name='Joe'
24
練習 在MySQL中的addressbook資料表中, 使用SQL語 法將符合自己姓名的資料中的電話改成1234
25
刪除:DELETE 功能:刪除指定的資料 常用語法: 使用範例: 刪除姓名欄位為Joe的資料
DELETE FROM 資料表 WHERE 限制敘述 使用範例: 刪除姓名欄位為Joe的資料 delete from 資料表名 where name='Joe'
26
練習 在MySQL中的addressbook資料表中, 使用SQL語 法將符合自己姓名的資料刪除
27
課程大綱 MySQL資料庫概論 使用phpMyAdmin MySQL基礎語法 用PHP存取MySQL資料庫
28
PHP存取MySQL資料庫 PHP提供了使用MySQL資料庫的相關函式,以便 於我們可以在網頁中存取資料庫中的資料。
在PHP中存取資料庫的方式為使用函式將SQL語法 傳送到MySQL資料庫的主機來操作MySQL。 而操作MySQL的過程主要為:連線、選擇資料庫 、送出SQL語法、取得資料。 MySQL資料庫的相關函式主要如下: 連線:mysql_connect 選擇資料庫:mysql_select_db 送出SQL語法:mysql_query 取得資料:mysql_fetch_array
29
連線:mysql_connect 功能:開啟MySQL伺服器連線 語法: 說明: 使用範例:
成功則傳回一正數的MySQL連結識別(identifier),失敗則傳 回錯誤訊息。 使用範例: $link = mysql_connect("MySQL主機位置", "帳號", "密碼"); $link用來存放連結識別(identifier)
30
選擇資料庫:mysql_select_db
功能:選擇一個資料庫 語法: mysql_select_db ("資料庫名稱", 連結辨別); 說明: 失敗則傳回空字串"" 。 使用範例: $link = mysql_connect("MySQL主機位置", "帳號", "密碼"); mysql_select_db("資料庫名稱", $link);
31
送出SQL語法:mysql_query 功能:送出MySQL要求 語法: 說明: 使用範例: mysql_query("SQL語法");
$link = mysql_connect("MySQL主機位置", "帳號", "密碼"); mysql_select_db("資料庫名稱", $link); $result = mysql_query("SQL語法"); $result用來存放結果識別
32
取得資料:mysql_fetch_array
語法: mysql_fetch_array(結果辨別); 說明: 傳回一陣列,此陣列相當於取得資料表的一列,如果沒有更 多的列可取則傳回0。通常用於SQL的SELECT語法 。 使用範例: $link = mysql_connect("MySQL主機位置", "帳號", "密碼"); mysql_select_db("資料庫名稱", $link); $result = mysql_query("SQL語法"); $data = mysql_fetch_array($result ); $data用來存放資料表的一列 使用$data['欄位名稱']取得資料
33
練習 試著使用PHP操作在phpMyAdmin中建立的通訊 錄addressbook資料表,並提供以下功能:
列出所有資料 新增一筆資料 修改一筆資料 刪除一筆資料 範例:chap05/addressbook.php 函式補充: 輸出訊息並且終止程式 die(“輸出訊息”);
34
練習 讀出MySQL中的資料 將MySQL中addressbook資料表中的資料讀到 PHP網頁 (若該資料無照片請在照片欄位顯示"無")
35
練習 寫入資料於MySQL中 製作一個表單,將使用者填寫的內容透過PHP網 頁插入到MySQL中addressbook資料表中
請修改範例檔addressbook_add_action.php
36
練習 修改MySQL中的資料 製作一個表單,將指定MySQL中資料讀出並設為 表單的預設值,以便讓使用者修改資料
請修改範例檔addressbook_fix.php 將使用者修改後內容透過PHP網頁更新MySQL中 addressbook資料表的資料 請修改範例檔addressbook_fix_action.php
37
練習 刪除MySQL中的資料 製作PHP網頁將指定MySQL中addressbook資料 表的資料刪除
請修改範例檔addressbook_del.php
Similar presentations