2015年8月28日 星期五

MySQL 的欄位名稱可以用空白字元

MySQL 的欄位名稱可以用空白字元

今天被一個 Bug 困住好久,可能是之前自己的手誤造成!!

原因就是...MySQL 的欄位名稱竟然可以使用空白字元,而且還可以放在第一個字元,我真是學藝不精!!

經測試,連資料表的名稱也可以使用空白字元:

CREATE TABLE ` test table` (
` field 1` TINYINT NOT NULL ,
PRIMARY KEY ( ` field 1` )
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci;
上面看得出我在資料表與欄位的名稱都用了空白字元嗎? 而且還是放在第一個字元!
我想,如果想要陷害別人絕對可以用 MySQL 這一招。
至於處理空白欄位名稱的問題,你可以:
  1. 將錯誤的欄位名稱改掉。
  2. 存取資料表與欄位時,在前後加上 ` `,例如: ` test table`.` field 1`。

沒有留言:

張貼留言