如何在结构成员中传递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作为编程语言。其他语言可能需要其他连接符号。
备注:您应该为此使用预处理语句,原因有两个:安全性和执行速度。
我原本以为它可能是java,但变量上的美元符号把我扔出去了 – 2013-04-21 16:59:05
哦,我看到你回答了和我几乎一样的东西。我后来...所以信用都是你的。 – luksch 2013-04-21 17:19:13
你实际上首先公平地得到了一个java - 我不得不看那个:) – 2013-04-21 17:55:25