2016-06-15 222 views
-4

我一直在尋找答案無處不在,但只是無法找出爲什麼我不斷得到解析錯誤爲這一行。解析錯誤:語法錯誤,意外的T_VARIABLE,插入,PHP

$sql = "INSERT INTO NIMET(NIMI) VALUES("$_POST['fname']")"; 

誰能告訴我爲什麼這行得到一個分析錯誤?

+1

我建議就如何在PHP中使用字符串讀了。見http://php.net/manual/en/language.types.string.php –

+3

好東西不起作用。這是廣泛開放SQL注入。錯誤告訴你所有你需要知道的事情,'$ _POST ['fname']'是不可預料的。你拿掉'''s並將它用作一個複雜的變量'{}',但是你也不應該這樣做。參數化查詢。 – chris85

回答

0
$sql = "INSERT INTO NIMET(NIMI) VALUES(".$_POST['fname'].")"; 

您需要使用.來組合字符串。

還有一個fanzy方式,但你需要從PHP新版本不夠:

$sql = "INSERT INTO NIMET(NIMI) VALUES({$_POST['fname']})"; 

我想你需要的是PHP的版本是5.3或5.6。但我對此毫不知情。

除此之外:您不應該從$_POST$_GET插入任何未經驗證的數據到您的數據庫。這可以用來插入惡意代碼。

1

使用.連接兩個字符串是這樣的:

$sql = "INSERT INTO NIMET(NIMI) VALUES(".$_POST['fname'].")"; 
相關問題