辦案筆記 | 偵探編號 05
WHERE 帳密字串:六零件鍵位拆解
接續 03 後端核心動作鑑識 登入用的
WHERE 片段。本篇不跳步:從最左到最右,六個零件各說明指法與為什麼要敲。
指法讀法:只寫「哪隻手 · 哪根指 · 上/下/左/右幾格」;要按 Shift 寫「小指 Shift」。不標鍵帽字母(不寫 L、P、~ 在哪)。
案發現場(登入 SQL 其中一段)
`account`='{$_POST['account']}'
由左而右:六個零件
-
`account`(反單引號組)鍵位指法:左小指 · 上2 左1
意義:SQL 的地盤規定。寫到資料庫裡的「資料表名」或「欄位名」,一律用反單引號包起來,告訴資料庫:這是指定的格子名稱。
-
=(等於)鍵位指法:右小指 · 上2 右3
意義:比對、連連看。讓左邊的欄位「等於」右邊送進來的內容。
-
''(外層單引號組)鍵位指法:右小指 · 右1
意義:SQL 的文字規定。比對內容是字串時,左右必須用單引號夾住;沒加,資料庫會當成數字或指令而報錯。
-
{ }(大括號組)鍵位指法:左小指 Shift + 右小指 · 上1 右1·右2
意義:PHP 的變數規定。整段 SQL 包在雙引號字串
"$sql=..."裡時,若要在字串內直接塞帶中括號的變數(如$_POST['account']),必須用大括號包住,PHP 才會當成完整變數、不會解讀錯誤。 -
$_POST鍵位指法:
$右小指 Shift+左食指 上2;_右小指 Shift+右中指 上2;POST 字母盲打意義:PHP 內建陣列,接收上一頁表單 POST 送來的整包資料(例:
members/03-login.php→ 登入 API)。 -
['account'](中括號 + 單引號)鍵位指法:
[右小指 右1·上1·上2;]右小指 右2;'右小指 右1;account 字母盲打意義:PHP 陣列指名。POST 包裹裡有多個欄位(帳號、密碼等),
['account']表示取出 name 為account的那一欄輸入值。
從左到右:打字順序串接
- 反單引號標示資料庫欄位
`account` =準備比對- 單引號
''為字串搭外框 - 大括號
{ }保護字串內的複雜變數 $_POST接表單整包['account']取出帳號欄位的值
密碼欄位同理
`password`='{$_POST['password']}',僅最後的鍵名改成 password。