註冊

辦案筆記 | 偵探編號 05

WHERE 帳密字串:六零件鍵位拆解

接續 03 後端核心動作鑑識 登入用的 WHERE 片段。本篇不跳步:從最左到最右,六個零件各說明指法為什麼要敲

指法讀法:只寫「哪隻手 · 哪根指 · 上/下/左/右幾格」;要按 Shift 寫「小指 Shift」。不標鍵帽字母(不寫 L、P、~ 在哪)。

案發現場(登入 SQL 其中一段)

`account`='{$_POST['account']}'

由左而右:六個零件

  1. `account`(反單引號組)

    鍵位指法:左小指 · 上2 左1

    意義:SQL 的地盤規定。寫到資料庫裡的「資料表名」或「欄位名」,一律用反單引號包起來,告訴資料庫:這是指定的格子名稱。

  2. =(等於)

    鍵位指法:右小指 · 上2 右3

    意義:比對、連連看。讓左邊的欄位「等於」右邊送進來的內容。

  3. ''(外層單引號組)

    鍵位指法:右小指 · 右1

    意義:SQL 的文字規定。比對內容是字串時,左右必須用單引號夾住;沒加,資料庫會當成數字或指令而報錯。

  4. { }(大括號組)

    鍵位指法:左小指 Shift + 右小指 · 上1 右1·右2

    意義:PHP 的變數規定。整段 SQL 包在雙引號字串 "$sql=..." 裡時,若要在字串內直接塞帶中括號的變數(如 $_POST['account']),必須用大括號包住,PHP 才會當成完整變數、不會解讀錯誤。

  5. $_POST

    鍵位指法:$ 右小指 Shift+左食指 上2;_ 右小指 Shift+右中指 上2;POST 字母盲打

    意義:PHP 內建陣列,接收上一頁表單 POST 送來的整包資料(例:members/03-login.php → 登入 API)。

  6. ['account'](中括號 + 單引號)

    鍵位指法:[ 右小指 右1·上1·上2;] 右小指 右2;' 右小指 右1;account 字母盲打

    意義:PHP 陣列指名。POST 包裹裡有多個欄位(帳號、密碼等),['account'] 表示取出 name 為 account 的那一欄輸入值。

從左到右:打字順序串接

  1. 反單引號標示資料庫欄位 `account`
  2. = 準備比對
  3. 單引號 '' 為字串搭外框
  4. 大括號 { } 保護字串內的複雜變數
  5. $_POST 接表單整包
  6. ['account'] 取出帳號欄位的值

密碼欄位同理

`password`='{$_POST['password']}',僅最後的鍵名改成 password