我试图将这些值插入数据库,但INSERT和WHILE子句彼此不兼容。有没有人有任何想法如何以不同的方式实现我想要的结果。
public boolean updateAns()
{
boolean success=true;
DBController db=new DBController();
db.setUp("IT Innovation Project");
String sql="INSERT INTO kioskSurveyAns(survey_qn1,survey_qn2,survey_qn3) VALUES('"+radioText+"','"+radioText1+"','"+radioText2+"')SELECT survey_qn1,survey_qn2,survey3 FROM kioskSurveyAns WHERE survey_nric='"+nric+"'";
if (db.updateRequest(sql) == 1)
success = true;
db.terminate();
return success;
}
答案 0 :(得分:3)
如果您使用INSERT INTO...SELECT
语句,则不应该有VALUES
个关键字,因为要插入的值来自SELECT
语句。例如
INSERT INTO tableName (col1, col2)
SELECT col1, col2
FROM tableX
WHERE....
但是回顾一下您的查询,您希望根据控件的值更新行。正确?
UPDATE kioskSurveyAns
SET survey_qn1 = 'rad1',
survey_qn2 = 'rad2',
survey_qn3 = 'rad3'
WHERE survey_nric= = 'richere'
作为旁注,该声明易受SQL Injection
攻击。请使用PreparedStatements