반응형
try
{
PreparedStatement s = (PreparedStatement) conn.prepareStatement("SELECT voters.Check,count(*) FROM voting.voters where FirstName="+first+"and LastName="+last+" and SSN="+voter_ID);
//java.sql.Statement k = conn.createStatement();
rs=s.executeQuery();
//s.executeQuery("SELECT voters.Check,count(*) FROM voting.voters where FirstName="+first+"and LastName="+last+" and SSN="+voter_ID);
System.out.println(rs.first());
c=rs.getInt(1);
d=rs.getInt(2);
System.out.println(c);
System.out.println(d);
if(c==1 && d==1)
{
s.executeUpdate("update cand set total=total+1 where ssn="+can_ID);
System.out.println("Succeful vote");
System.out.println("after vote");
s.executeUpdate("update voters set voters.Check=1 where ssn="+voter_ID);
toclient=1;
PreparedStatement qw = (PreparedStatement) conn.prepareStatement("select FirstName from cand where ssn="+can_ID);
// rs=k.executeQuery("select FirstName from cand where ssn="+can_ID);
rs1 = qw.executeQuery();//Error Here Plz help me
String name1= (String) rs1.getString(1);
System.out.println(name1);
s.executeUpdate("update voters set VTO="+name1+"where ssn="+voter_ID);
System.out.println(rs.getString(1));
}
else
{
if(c != -1)
toclient =2;
if( d ==0)
toclient =3;
if( d>1)
toclient =4;
}
System.out.println("out-----------");
rs.close();
s.close();
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
오류 IS :
java.sql.SQLException: Before start of result set
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1072)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:986)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:981)
해결 방법
코드 스 니펫에서 PreparedStatements를 작성했지만 올바르게 사용하지 않습니다. 준비된 문은 실행하기 전에 값에 바인딩되는 일종의 '문 템플릿'으로 사용됩니다. javadoc을 인용하려면 :
PreparedStatement pstmt = con.prepareStatement(
"UPDATE EMPLOYEES SET SALARY = ? WHERE ID = ?");
pstmt.setBigDecimal(1, 153833.00)
pstmt.setInt(2, 110592)
현재 PreparedStatement 사용에 비해 두 가지 큰 이점이 있습니다.
두 번째는 큰 문제입니다. 예를 들어 변수 first
와 last
가 사용자 인터페이스에서 수집되고 형식이 변경되지 않으면 SQL의 일부가 입력 될 위험이 있습니다. 그 가치를 위해, 당신의 진술로 끝납니다! 바인딩 된 매개 변수를 사용하면 SQL 문의 일부가 아닌 값으로 만 사용됩니다.
참조 페이지 https://stackoverflow.com/questions/2260575
반응형
'MySql' 카테고리의 다른 글
MySQL PHP에서 URL 매개 변수를 사용하는 MySQL 쿼리 (0) | 2020.12.08 |
---|---|
MySQL 단일 행 하위 쿼리를 반환하는 업데이트 문은 둘 이상의 행을 반환합니다. (0) | 2020.12.08 |
MySQL 타임 스탬프 필드의 날짜 부분별로 그룹화 (0) | 2020.12.08 |
MySQL 다른 PHP 페이지에서 동일한 MySQL 연결 사용 (0) | 2020.12.08 |
MySQL InnoDB 테이블은 어떻게 복구합니까? (0) | 2020.12.08 |
댓글