如何在结构成员中传递MySQL中的VALUES

问题描述:

我想将结构成员的值写入MySQL表中。我遇到的问题是我希望读取结构的值并将值写入特定列。如何在结构成员中传递MySQL中的VALUES

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

通过上述,我得到以下错误:

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

如何使用设定值从结构成员或任何本地变量?

目前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); 

如果你能够指定要使用那么我可以提供一个更具体的答案的语言。

你需要的东西来代替

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