【发布时间】:2014-05-22 18:22:07
【问题描述】:
尝试在 MySQL 中创建表时出现错误。我不知道它是从哪里来的。我认为它可能是一个保留字“名称”,但我将其重命名为 CharName 认为这会有所帮助。有人对此有任何见解吗?
这是我的字符串:
CREATE TABLE xxx.xxx.xxx.xxx_10FEED988A06 (
`Date` datetime NOT NULL ,
`Guid` varchar(255) NULL ,
`CharName` varchar(255) NULL ,
`Server` varchar(255) NULL ,
`CpuId` varchar(255) NULL ,
`HardDriveId` varchar(255) NULL ,
`MacAddress` varchar(255) NULL ,
`IpAddress` varchar(255) NULL ,
`MD5` varchar(255) NULL ,
PRIMARY KEY (`Date`)
)
这是我的错误:
MySql.Data.MySqlClient.MySqlException (0x80004005): You have an error in your SQL
syntax; check the manual that corresponds to your MySQL server version for the
right syntax to use near '70.210.131.54_10FEED988A06 (`Date` datetime NOT NULL
,`Guid` varchar(255) NULL' at line 1
这是我的代码:
public static void CreateNonUsersTable()
{
const string myConString = "Server=" + Server + ";" +
"PORT=" + Port + ";" +
"DATABASE=" + NonusersDataBase + ";" +
"Persist Security Info=No;" +
"Convert Zero Datetime=True;" +
"Encrypt=True;" +
"SslMode=Required;" +
"username=" + DbUser + ";" +
"password=" + DbPass + ";";
string createUser = @"CREATE TABLE " + Username + " (" +
"`Date` datetime NOT NULL ," +
"`Guid` varchar(255) NULL ," +
"`CharName` varchar(255) NULL ," +
"`Server` varchar(255) NULL ," +
"`CpuId` varchar(255) NULL ," +
"`HardDriveId` varchar(255) NULL ," +
"`MacAddress` varchar(255) NULL ," +
"`IpAddress` varchar(255) NULL ," +
"`MD5` varchar(255) NULL ," +
"PRIMARY KEY (`Date`))";
Logger.Write(myConString, Enums.LogType.Info);
Logger.Write(createUser, Enums.LogType.Info);
using (var conn = new MySqlConnection(myConString))
{
conn.Open();
using (var cmd = new MySqlCommand(createUser, conn))
{
try
{
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
Logger.Write(ex.ToString(), Enums.LogType.Exception);
}
finally
{
cmd.Dispose();
}
}
conn.Close();
conn.Dispose();
}
}
【问题讨论】:
-
有点不相关:如果您的
Username变量包含用户提供的数据,那么您就有可能面临 SQLI 漏洞。