2

我正在尝试将这些值插入数据库,但是,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;
}
4

1 回答 1

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

于 2013-01-29T08:27:29.910 回答