【发布时间】:2014-04-30 19:45:22
【问题描述】:
我正在处理 jdbc 我的 sql 语句。我的表 TBGROUP 有这两列 GroupName、OwnerEmail 和
String n1=request.getParameter("GName");
String n3=request.getParameter("OEmail");
String sql1 = "SELECT GroupName,OwnerEmail FROM TBGROUP where GroupName='"+n1+"' and OwnerEmail='"+n3+"'";
但它在 Tomcat 输出屏幕上显示“OWNEREMAIL”错误:标识符无效。 可能是什么原因。请帮忙
【问题讨论】:
-
根据您的数据库,列可能区分大小写。
-
@markg 正在使用 oracle 10g
-
SQL注入,我来了!也就是说,请不要通过字符串连接构建查询字符串,请改用[prepared statements][(docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html)。
-
试试
GroupName like '"+n1+"' and OwnerEmail like '"+n3+"'" instead of=`。 -
@user3445854 。 . .错误是说您连接到的架构中的表
TBGROUP没有列OwnerEmail。我们无法验证该表是否确实具有该列。区分大小写是一种可能性。拼写错误的预期列名是另一个问题。连接到错误的模式是另一个问题。可能还有六个其他原因不会立即浮现在脑海中。
标签: java sql servlets jdbc oracle10g