看板 PHP 關於我們 聯絡資訊
最近開始學習php+mysql,碰到一個疑問 有一個簡單的成績輸入例子查到有兩種寫法如下: 1. mysql_query("INSERT INTO grade (name, eng) VALUES('$_POST[name]', '$_POST[eng]');"); 第一個例子把POST的變數用兩個 單引號 '包起來, 原本$_POST['name']變成$_POST[name],請問為什麼要把裡面的引號拿掉才能成功呢 我原本是寫:VALUES('$_POST['name']','$_POST['eng']') 結果就是失敗了,查了一下才改成這兩種例子的方法 目前學到都是$_POST['xx'] or $_POST["xx"],拿掉裡面引號的原因是什麼呢? 是因為一個值裡面不能有兩組單引號的關係嗎 2. mysql_query("INSERT INTO grade (name, eng) VALUES('".$_POST['name']."', '".$_POST['eng']."');"); 第二個例子保留原本變數的寫法,但紅色字是比較不解之處, 為什麼變數除了單引號包住之外,裡面又要包一層雙引號與連結符號呢? 我知道一般雙引號與連接符號的功能,但放在這邊的用途是什麼呢? 希望問題不會太笨,雖然知道寫法,但不知道原因實在很難安心寫下去orz 感激! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.182.180.216 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1453920825.A.39A.html
xdraculax: 用雙引號包作字串,裡面單引號對php而言都是字,第二 01/28 07:40
xdraculax: 例多個雙引號是多個字串,用.連接,單引號是給sql用的 01/28 07:40
xdraculax: 字串符號 01/28 07:40
xdraculax: 第一例雙引號字串內雖可直接嵌入變數,建議還是以{}包 01/28 07:46
xdraculax: 住變數,未加單雙引號會視為常數,有些環境未定義常數 01/28 07:46
xdraculax: 會直接當字串,有些環境則會報錯 01/28 07:46
MOONRAKER: 寫 ... VALUES ( '{$_POST['field']}' 就不會有問題了 01/28 11:07
MOONRAKER: 第一個寫法是錯的 陣列項目還是字串 一樣需要引號 01/28 11:08
MOONRAKER: 不會錯只是運氣好。 01/28 11:09
MOONRAKER: 第二個我稱為整人 01/28 11:10
acidjazz: 喔喔!所以第二例其實只是單純的雙引號字串+連結號+變數 01/29 02:50
acidjazz: 是我會錯意以為那邊的雙引號跟連結符號有成對的意義… 01/29 02:52
acidjazz: 謝謝兩位大大的說明!直接改M大的寫法了,清楚很多 01/29 02:53