使用:
String query = "DELETE FROM Candidates WHERE COD = ?";
declaratie.setInt(1, 11);
它有效。
但是,如果我使用这个表达式:
String query = "DELETE FROM Candidati WHERE ? = ?";
declaratie.setString(1, "COD");
declaratie.setInt(2, 11);
它运行,没有错误,但什么也没做......
我使用它错了吗?
答案 0 :(得分:1)
你的第二个表达式什么也没做,因为条件是“错误的”:条件是'COD' = 11
,其评估为false
,因为第一个参数是一个字符串,而不是COD = 11
。< / p>
您无法使用预准备语句修改查询或输入列名。您只能传递作为参数处理的值。
答案 1 :(得分:1)
您的第一个语句正在运行,因为?
用于设置参数。第二个未运行,因为您无法将列名称设置为参数