[Microsoft] [ODBC Microsoft Access Driver]参数太少。预计1。
这是我执行此查询时遇到的错误:
s="select * from package where p_name like "+packageChange;
执行时:
s="select * from package";
然后它运作正常。
但问题是" p_name"表格列#34;包" ...?
我的代码,
res=start.executeQuery("select * from package where p_name like "+packageChange);
声明
System.out.println("ddddddd="+packageChange);
打印ddddddd = pkg5
答案 0 :(得分:1)
这是Java代码吗?如果是这样,请使用绑定变量:
Connection conn = ...;
PreparedStatement st = conn.prepareStatement("select * from package where p_name like ?");
st.setString(1, packageChange);
res = st.executeQuery();
否则,您需要SQL injection。
在原始代码中,将参数括在撇号中:
res=start.executeQuery("select * from package where p_name like '"+packageChange + "'");
但我鼓励你不要这样做:你应该检查packageChange
变量中的撇号和换行符(可能还有更多) - 清理它,例如here