4.
PHP資料類型與建立資料表
一、 建議將表單放入變數中(換到PHP模式下)
- 如此日後會更好維護,不管要做編輯功能或者改為函數都更容易。
二、 PHP的資料型態
- 字串 string
- (1) 純字串用單引號包住,內含變數之字串用雙引號包住。
- (2) 欲把特殊字元($、"、'...等)當作文字顯示,需用「\」來解除其作用
- a. \n → 純文字換行
- b. \r → 也是換行(微軟換行符通常為 \r\n )
- c. \t → 純文字Tab定位
- (3) Heredoc定界符<<<的用法:
$txt = <<<note
這裡面要秀出$或"或'都不用加\
note;
- 整數 integer:整數可分正負,如100或-100,整數不需加任何引號。
- 浮點數 float:有內含小數點的數字,浮點數也不需要加任何引號。
- 布林值 boolean:即true與false,無大小寫之分
- (1) true:非空字串、非0數值
- (2) false:空字串、數字0、NULL
- 陣列 array(另外說明)
- 物件 object(另外說明)
- 資源 resource:通常是一些連接伺服器,或者開啟目錄、開啟檔案的傳回值
- 無值 NULL:需大寫、NULL和空值意義並不一樣。
三、 關於phpMyAdmin
- phpMyAdmin不是MySQL,phpMyAdmin是一套程式,用來管理MySQL。
- 打開瀏覽器,輸入「http://網址/phpmyadmin」即可執行phpMyAdmin。
四、 建立資料庫、資料表注意事項
- 「資料庫」和「資料表」名稱不能以「數字」或特殊符號作為開頭。
- MySQL 4.1 以後,建立資料表時,若要使用UTF8,在「校對」選項請選擇「utf8_general_ci」。
五、 建立資料表欄位
- 基本動作:設好欄位名稱→指定資料型態→(若是varchar則一定要設定「長度」;若是數字則「屬性」多為「unsigned」;若是要當作流水號,則在「附加」選擇「auto_increment」)→最後指定哪些欄位要當作索引。
- 適當的資料類型讓您上天堂!請參考第六單元的表!選用適當資料類型。
六、 MySQL常用資料類型一覽
- (M,D):M是資料位數,最大為255;D是小數位數。
- []中括號,表示M或D可以省略不寫,不寫的話則以內定範圍為準。
- unsigned表示正整數狀態,也就是沒有負數。
- zerofill表示位數不足補0,如int(4),存28這個數字,資料庫會將之存成0028。
- 灰色字體部份表示不常用的類型。
- 日期部份:Y代表的是年,YY代表2位數的年,如97年,YYYY代表4位數的年,如2001年,其餘的M(月)、D(日)依此類推。
- 當年份數字在00-69之間,則會被當作2000-2069,若是在70-99之間,則當作1970-1999!
- php的時間戳記是unix timestamp是由1970/01/01 00:00:00累計之今的秒數。而MySQL的時間戳記則是YYYYMMDDHHMMSS,根據M值而有所不同。
- 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個選項 |
|