2013-04-21 31 views
1

我想將結構成員的值寫入MySQL表中。我遇到的問題是我希望讀取結構的值並將值寫入特定列。如何在結構成員中傳遞MySQL中的VALUES

string assetNumber = EGMSimulatorObj.EGMConfigurationObj.AssetNumber.ToString(); 
string query = "INSERT INTO egmtable (Asset_Number) VALUES($assetNumber)"; 

通過上述,我得到以下錯誤:

Unknown column '$assetNumber' in 'field list'. 

如何使用設定值從結構成員或任何本地變量?

回答

1

目前MySQL正在看到$ assetNumber,所以相信它是一個列名。它沒有被值取代。您可能希望將該變量連接到字符串中。我不確定您使用哪種語言。

PHP

$query = "INSERT INTO egmtable (Asset_Number) VALUES (".$assetNumber.")"; 

ColdFusion的

qryString = "INSERT INTO egmtable (Asset_Number) VALUES ("&assetNumber&")"; 

的Java

string query = "INSERT INTO egmtable (Asset_Number) VALUES("+assetNumber+")"; 

在所有這些情況下,雖然,個很容易被SQL注入。您可以更好地使用類似於cfqueryparam(CF)/ mysqli->bind(PHP)的語言來確保該值正確轉義並確保您的查詢安全。所以下去java的路徑,並使用passing parameters to a JDBC PreparedStatement爲起點

query = con.prepareStatement("INSERT INTO egmtable (Asset_Number) VALUES(?)"); 
query.setString(1, assetNumber); 

如果你能夠指定要使用那麼我可以提供一個更具體的答案的語言。

1

你需要的東西來代替

string query = "INSERT INTO egmtable (Asset_Number) VALUES($assetNumber)"; 

string query = "INSERT INTO egmtable (Asset_Number) VALUES("+assetNumber+")"; 

也就是說,如果你使用的是Java作爲編程語言。其他語言可能需要其他連接符號。

備註:您應該爲此使用預處理語句,原因有兩個:安全性和執行速度。

+0

我原本以爲它可能是java,但變量上的美元符號把我扔出去了 – 2013-04-21 16:59:05

+0

哦,我看到你回答了和我幾乎一樣的東西。我後來...所以信用都是你的。 – luksch 2013-04-21 17:19:13

+0

你實際上首先公平地得到了一個java - 我不得不看那個:) – 2013-04-21 17:55:25

相關問題