我使用java和jdbc驱动程序(java.sql),我得到了这段代码:
String clinetIP = "220.181.108.89";
String sql = "SELECT * FROM `as` WHERE `as`.ip_range LIKE '%?%'";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setString(1, clinetIP);
我得到:
java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
执行statement.setString(1, clinetIP)时。
这是为什么呢? statements.setxxx 不会在语句字符串中查找问号吗?我在声明中使用了一个问号,但它似乎被忽略了!
最佳答案
试试这个
String sql = "SELECT * FROM `as` WHERE `as`.ip_range LIKE ?";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setString(1, "%" + clientIP + "%");
关于java - PreparedStatement 忽略查询中的参数 : java. sql.SQLException : Parameter index out of range (1 > number of parameters, 为 0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18652703/