Toggle main menu visibility
新聞
下載
教材
影音
討論
其他選單
好站連結
行事曆
電子相簿
常見問題
萬用表單
即時留言簿
友站消息
社大學員
:::
登入
登入
帳號
密碼
登入
重整畫面
:::
所有書籍
「[1032]PHP入門」目錄
MarkDown
2-3 index_tpl.html
1. PHP開發環境與表單
1-1 post.php
1-2 index.php
2. 邏輯判斷及樣板引擎
2-1 index.php
2-2 post.php
2-3 index_tpl.html
3. MySQL的資料存取
3-1 index.php
3-2 post.php
3-3 post_tpl.html
3-4 eznews.sql
4. PHP函數與引入
4-1 post.php
4-2 index.php
4-3 list_tpl.html
4-4 function.php
5. 編輯與刪除資料
5-1 index.php
5-2 list_tpl.html
5-3 post.php
5-4 config.php
5-5 function.php
5-6 post_tpl.html
6. BootStrap各式應用
6-1 post.php
6-2 list_tpl.html
6-3 post_tpl.html
6-4 index.php
7. 置頂、計數器與 join
7-1 post.php
7-2 post_tpl.html
7-3 index.php
7-4 list_tpl.html
7-5 function.php
7-6 eznews.sql
8. 上傳與分頁
8-1 post.php
8-2 index.php
8-3 config.php
8-4 post_tpl.html
8-5 eznews.sql
9. 身份認證機制
9-1 eznews.sql
9-2 post_tpl.html
9-3 list_tpl.html
9-4 config.php
9-5 index.php
9-6 post.php
3-1 index.php
\[1032\]PHP入門 ============= [](http://www.tad0616.net/uploads/tad_book3/file/1032/3.pdf) ### 一、 關於phpMyAdmin或Adminer 1. 要管理MySQL資料庫,需要進到MySQL ll終端機界面,並利用SQL語法,以下指令的方式來操作管理之,因此,透過人家寫好的視覺化界面來操作會更簡單。 2. phpMyAdmin是一套歷史悠久的MySQL資料管理程式,安裝設定其實有點小麻煩,不過功能齊全,但相對也肥大。後起之秀Adminer(
),只有一個檔案,無須安裝設定即可使用,方便易用,值得推薦!需注意的是,這兩套都不是MySQL,均為一套PHP程式,用理MySQL的成世界面而已。 3. 打開瀏覽器,輸入「
」可執行phpMyAdmin。 4. 輸入「
」則可執行Adminer。 ### 二、 注意資料庫的「校對」 1. 「資料庫」和「資料表」名稱不能以「數字」或特殊符號作為開頭。 2. MySQL 4.1 以後,建立資料表時,若要使用UTF8,在「校對」選項請選擇「utf8\_general\_ci」。(latin1\_swedish\_ci是預設值,記得改掉!) ### 三、 建立資料表 1. 登入,選擇「資料庫」,點擊「建立資料表」,輸入資料表名稱,引擎選用「MyISAM」,校對選用「utf8\_general\_ci」。 2. 基本動作:設好欄位名稱→指定資料型態(適當的資料類型讓您上天堂!) - (1) 若是varchar則一定要設定「長度」,通常建議給到最大255; - (2) 若是數字則「屬性」多為「unsigned」,即正整數之意; - (3) 若是要當作流水號,則在「附加」選擇AI即「auto\_increment」最後指定哪些欄位要當作索引。  ### 四、 MySQL常用資料類型一覽 1. (M,D):M是資料位數,最大為255;D是小數位數。 2. \[\]中括號,表示M或D可以省略不寫,不寫的話則以內定範圍為準。 3. unsigned表示正整數狀態,也就是沒有負數。 4. zerofill表示位數不足補0,如int(4),存28這個數字,資料庫會將之存成0028。 5. 日期部份:Y代表的是年,YY代表2位數的年,如97年,YYYY代表4位數的年,如2001年,其餘的M(月)、D(日)依此類推。 6. 當年份數字在00-69之間,則會被當作2000-2069,若是在70-99之間,則當作1970-1999! 7. php的時間戳記是unix timestamp是由1970/01/01 00:00累計之今的秒數。而MySQL的時間戳記則是YYYYMMDDHHMMSS,根據M值而有所不同。 8. Big5中文,一個字佔2位元;UTF-8中文,一個字佔3位元。
類型
bytes
範圍
選項
數字類型
**TINYINT**(M) 非常小整數
1
-128到127,unsigned狀態則為0到255
unsigned、zerofill
**SMALLINT**(M) 較小整數
2
-32768到32767,unsigned狀態則為0到65535
unsigned、zerofill
**MEDIUMINT**(M) 中型整數
3
-8388608到8388607,unsigned狀態則為0到16777215
unsigned、zerofill
**INT**(M) 標準整數
4
-2147483648到2147483647unsigned狀態則為0到4294967295
unsigned、zerofill
**BIGINT**(M) 大整數
8
-9223372036854775808到9223372036854775807unsigned狀態則為0到18446744073709551615
unsigned、zerofill
**FLOAT**(M) 單精確度浮點數
4
FLOAT(M,D)最小非零值:±1.175494351E - 38FLOAT(4)最大非零值:±3.402823466E + 38FLOAT(8)最大非零值:±1.7976931348623157E + 308
zerofill
**DOUBLE**(M) 雙精確度浮點數
8
最小非零值:±2.2250738585072014E - 308
zerofill
**DECIMAL**(M,D)
M
可變;其值的範圍依賴於M和D
zerofill
日期類型
**DATE** 日期
3
1000-01-01到9999-12-31
**DATETIME** 日期時間
8
1000-01-01 00:00:00到9999-12-31 23:59:59
**TIMESTAMP**(M) 時間戳記
2,4,6,8,10,12,14 (左)
1970-01-01 00:00:00到2037
**TIME** 時間
3
-838:59:59到838:59:59
**YEAR** 年度
1
1901到2155
文字類型
**CHAR**(M) 固定長度字串
M
1<=M<=255
**VARCHAR**(M) 變動長度字串
M+1
1<=M<=255
**TINYTEXT**非常小的文本串
M+1
255個字元
**TEXT**小文本串
M+2
65535個字元
**MEDIUMTEXT**中等文本串
M+3
16777215個字元
**LONGTEXT**大文本串
M+4
4294967295個字元
**TINYBLOB**超小型BLOB
M+1
255個字元
**BLOB**小型BLOB
M+2
65535個字元
**MEDIUMBLOB**中型BLOB
M+3
16777215個字元
**LONGBLOB**大型BLOB
M+4
4294967295個字元
特殊
**ENUM** 單選選項
1或2
最多65535個選項
**SET** 複選選項
1,2,3,4,8
最多64個選項
### 五、 匯出資料表 1. 為了方便系統重建或轉移,我們可以將資料庫結構匯出,方便下一次安裝。 2. 點選「匯出」,格式選用「sql」,並句選要匯出的資料表名稱。若有要匯出資料,則資料部份也需打勾(此例不用) 3. 匯出後是一個xxx.sql檔,此為文字檔,可用任何編輯器開啟,日後易可以方便的進行匯入動作。 4. 您可以將SQL檔打開,並將一些註解及SET刪除掉。  ### 六、 讓PHP連上MySQL ``` $link=@mysql_connect("localhost","root"," 12345"); if($link){ mysql_query("SET NAMES 'utf8'"); mysql_select_db("test"); }else{ die("無法連上資料庫"); } ``` 1. 用法:int mysql\_connect("主機位置","資料庫帳號"," 資料庫密碼"); 2. 範例:$link=mysql\_connect("localhost","root","12345"); 3. 該函數會傳回一個int(整數),我們稱之為「連線編號」,其資料型態為:資源。 4. 只要程式和資料庫都在同一台主機,「主機位置」填入「localhost」即可。 5. 執行SQL語法:int mysql\_query( "SQL語法" \[, 連線編號\]); 6. 結束連線可使用:「mysql\_close($link);」,不過,其實不用也沒關係。 7. 讓MySQL可以順利寫入UTF8中文:mysql\_query("SET NAMES 'utf8'"); 在連線之後,加入此行即可。 8. 選擇資料庫:mysql\_select\_db("資料庫名稱"); ### 七、 新增資料到資料庫 1. 寫入一筆資料到MySQL中,就要用insert或replace的語法,其用法如下: ``` insert [into] 資料表名稱 [(欄位1,欄位2...)] values (值1,值2...) ``` 2. insert 改為 replace 則為「取代」之意,亦即若唯一索引的欄位值已存在,則用新值覆蓋舊值。若不存在,則新增。 3. 可以一次新增多筆: ``` insert [into] 資料表名稱 [(欄位1,欄位2...)] values ( 值 A1, 值 A2... ) , ( 值 B1, 值 B2...) , ( 值 C1 , C2...) , ( 值 D1 , 值 D2...) ; ``` 4. 欄位或資料表稱的前後可加「`」符號(也可不加),而值為字串時,則一定要加引號(通常為單引號)。 ### 八、 讀取資料庫內容 1. 要讀出MySQL的資料,那您就要用select這指令。 ``` SELECT 查詢內容 [FROM `資料表名稱` 篩選條件] ``` 2. 「篩選條件」有以下幾個東西!注意喔!由上到下就是其語法的先後順序喔!您可不能把LIMIT拿到WHERE的前面,那是錯誤的喔! - (1) \[where 篩選條件\] - (2) \[group by 欄位名稱\]\[having group的篩選條件\] - (3) \[order by {unsigned\_integer | 欄位名稱 | formula} \[asc | desc\] ,...\] - (4) \[limit \[起點,\] 筆數\] ### 九、 常和select一起用的PHP的函數 1. 從資料庫取得的陣列,索引值可以是數字或字串(即欄位名稱)。$row\[0\] 或 $row\["title"\] ``` $row=mysql_fetch_array(); ``` 2. 從資料庫取得的陣列,索引值只能是數字(數字索引)。$row\[0\],通常搭配list()來將陣列值套用到指定變數上。 ``` $row=mysql_fetch_row(); ``` 3. 從資料庫取得的陣列,索引值只能是字串(關聯索引)。$row\["title"\] ``` $row=mysql_fetch_assoc(); ```
### 十、 常和GROUP BY搭配使用的MySQL函數 - COUNT():計算數目 - AVG():計算GROUP的平均值 - MIN():找出最小值 - MAX():找出最大值 - SUM():總和
:::
搜尋
search
進階搜尋
QR Code 區塊
快速登入
所有討論區
「PHP全端開發」線上課程討論區
XOOPS使用討論區
一般研習學員
社大學員專用
路過哈啦區
XOOPS佈景設計
XOOPS模組開發
Tad書籍區
即時留言簿
書籍目錄
展開
|
闔起
線上使用者
148
人線上 (
101
人在瀏覽
線上書籍
)
會員: 0
訪客: 148
更多…