作者acidjazz (...........)
看板PHP
標題[請益] 請教INSERT values的變數問題
時間Thu Jan 28 02:53:41 2016
最近開始學習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://webptt.com/m.aspx?n=bbs/PHP/M.1453920825.A.39A.html
1F:→ xdraculax: 用雙引號包作字串,裡面單引號對php而言都是字,第二 01/28 07:40
2F:→ xdraculax: 例多個雙引號是多個字串,用.連接,單引號是給sql用的 01/28 07:40
3F:→ xdraculax: 字串符號 01/28 07:40
4F:→ xdraculax: 第一例雙引號字串內雖可直接嵌入變數,建議還是以{}包 01/28 07:46
5F:→ xdraculax: 住變數,未加單雙引號會視為常數,有些環境未定義常數 01/28 07:46
6F:→ xdraculax: 會直接當字串,有些環境則會報錯 01/28 07:46
7F:→ MOONRAKER: 寫 ... VALUES ( '{$_POST['field']}' 就不會有問題了 01/28 11:07
8F:→ MOONRAKER: 第一個寫法是錯的 陣列項目還是字串 一樣需要引號 01/28 11:08
9F:→ MOONRAKER: 不會錯只是運氣好。 01/28 11:09
10F:→ MOONRAKER: 第二個我稱為整人 01/28 11:10
11F:→ acidjazz: 喔喔!所以第二例其實只是單純的雙引號字串+連結號+變數 01/29 02:50
12F:→ acidjazz: 是我會錯意以為那邊的雙引號跟連結符號有成對的意義… 01/29 02:52
13F:→ acidjazz: 謝謝兩位大大的說明!直接改M大的寫法了,清楚很多 01/29 02:53