【发布时间】:2017-02-23 03:54:56
【问题描述】:
我很难解决这个关于MySQL Syntax 的错误。
这里是MySQL syntax
try
{
SQL = "INSERT INTO payment_history_tbl (id, payment_type, date, time, amount, student_no) VALUES (NULL, '" + cmbbxPaymentType.Text + "', CURRENT_DATE(), CURRENT_TIME(), '" + txtbxPaymentAmt.Text + "', '" + msktxbxStudNo.Text + "'";
// INSERT INTO `studentpaymentqueuing`.`payment_history_tbl` (`id`, `payment_type`, `date`, `time`, `amount`, `student_no`) VALUES (NULL, 'Certificate of Enrollment', '2017-02-24', '10:19:28', '60.00', '13-0695');
cmd = new MySqlCommand(SQL, conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
错误信息:
您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 在第 1 行的 '' 附近
有什么想法吗?
【问题讨论】:
-
如果有人输入 " 或只是 ',您的代码肯定会失败。使用 SQL 参数来修复它。
-
这是一个想法……这个问题中的代码遵循我们在易受 SQL 注入攻击的代码中经常看到的模式。