다음 코드를 시도합니다.SQL 서버에서 테이블을 업데이트하십시오.
String sym=request.getParameter("symbol");
Statement st1=con.createStatement();
String symIns="UPDATE "+tblname+" SET Symbol='+sym+'";
int m=st1.executeUpdate(symIns);
if(m==0)
out.println("m is zero");
else
if(m!=0)
out.println("Inserted");
I는 0으로 m 인쇄 따라서 테이블을 갱신되지 않은 코드를 실행 한 후 이전과 page.But에서 SYM tblname의 값을 수신하고있다. 이 코드는 레코드가없는 테이블 (Null 값만 포함)에서는 작동하지 않습니다. 그러나 그것에 몇 가지 기록이있는 테이블을 위해 일하고 있습니다. 또한 데이터베이스에서 직접 실행하려고했습니다. query executed successfully
을 표시하지만 메시지는 (0 row(s) affected)
으로 표시됩니다. 이것은 데이터베이스에서 성공적으로 실행중인 쿼리입니다. '
업데이트 6 SET SYMBOL ='eq 'WHERE SYMBOL ='be ';
내가 말한 것처럼이 테이블을 위해이 테이블은 SYMBOL 컬럼의 값이 '있어야'합니다.
질문을 많이 추가 : 오류/경고가 있습니까? 다른 쿼리가 작동합니까? 'tblname'이 데이터베이스에 있습니까? 'tblname' 테이블에 레코드가 있습니까? DB 연결에 명시 적'COMMIT'이 필요하지 않습니까? –
이것은 SQL 주입에 널리 사용됩니다. 대체 솔루션을 고려해야 할 수도 있습니다. – Arion
데이터베이스에서 직접 실행하는 것보다 콘솔에서 문자열 symIn을 인쇄 해보십시오. – Maddy