2013-05-26 101 views
-1

我想通過MySQLi讓我的MySQL表插入東西,但它引發錯誤1054未知列說我的值之一是我的列,我不知道是什麼原因導致此錯誤。這裏是我的代碼:MySQL錯誤1054

$mysqli -> query('INSERT INTO `cities` (`Code`, `Name`, `lattitue`, `longitute`) VALUES (`' . $_GET['code'] . '` , `' . $_GET['name'] . '` , `' . $_GET['lat'] . '` , `' . $_GET['long'] . '`)') 

這裏輸出:

INSERT INTO citiesCodeNamelattituelongitute)VALUES(kllkkl94586568)失敗:(1054 ) '字段列表'中的未知列'kllk'

謝謝,非常感謝幫助!

+0

接受的答案是錯誤的。 [如何在MySQL插入語句中包含PHP變量](http://stackoverflow.com/a/7537500/285587) –

+1

@YourCommonSense你正在吸菸對你不利的東西嗎? a)我回答瞭如何解決錯誤的問題,b)然後,我指出參數化查詢的文檔作爲該問題的更好的基礎解決方案,以避免c)SQL注入的可能性,我將鏈接解釋和d )我不這樣做,就像你一樣,鏈接到一個關於如何用**棄用的** API解決這個問題的解釋。你故意誤導用戶,將基本正確的答案稱爲錯誤,並將過時的答案連接爲「更好」而不加解釋 - 現在這簡直是愚蠢的。 –

回答

1

圍繞字符串常量值使用實數撇號('),而不是反引號(`) - 這些用於轉義查詢中的保留字。 MySQL現在認爲您希望從字段kllk中獲取Code的值,而不是像您想要的字符串kllk

爲了這一點,替代:

VALUES (`' . $_GET['code'] . '` 

有:

VALUES (\'' . $_GET['code'] . '\' 

,並重復此爲其它值。之後,請確保您閱讀parametrized queries,將這些值連接在一起並不是很好的做法,可以打開一些nasty security exploits