내 쿼리가 정확하지만 "SQL 구문에 오류가 있습니다. MySql 서버 버전에 해당하는 설명서를 확인하십시오. group = 'aaa'및 Date_de_naissanse ......... "1 번 줄에서. 나는 두 가지 버전에서 구문을 확인했지만 여전히 같은 메시지를 보냈다.자바에서 Mysql 구문 오류가 발생했습니다
if (rdps==true){
con = connection.connect();
String sql ="SELECT * FROM eleve_ps WHERE Nom_et_prenom=? and Group=? and Date_de_naissanse=? and Responsable=? and CIN=? and Telephone=? and Adresse=?";
try{
st=con.prepareStatement(sql);
st.setString(1, txtnp.getText());
st.setString(2, txtg.getText());
st.setInt(6, Integer.parseInt(txtt.getText()));
st.setString(4, txtr.getText());
st.setString(5, txtc.getText());
st.setDate(3, date);
st.setString(7, txta.getText());
rs=st.executeQuery();
if(rs.next()){
JOptionPane.showMessageDialog(null,"VOTRE COURRIER DEJA EXISTE");
}else{
String insert = "INSERT INTO `eleve_ms`(`ID`, `Nom_et_prenom`, `Group`, `Date_de_naissanse`, `Responsable`, `CIN`, `Telephone`, `Adresse`) VALUES (Null,'"+txtnp.getText()+"','"+txtg.getText()+"','"+date+"','"+txtr.getText()+"','"+txtc.getText()+"','"+Integer.parseInt(txtt.getText())+"','"+txta.getText()+"')";
try{
st=con.prepareStatement(insert);
st.executeUpdate();
this.setVisible(false);
}
catch(Exception e){
JOptionPane.showMessageDialog(null,e);
}
}
}
catch(Exception e){
JOptionPane.showMessageDialog(null,e);
}
rdms=false;
}
을 그래서이 버전입니다 : 여기 내 코드는
if (rdps==true){
con = connection.connect();
String sql ="SELECT * FROM eleve_ps WHERE Nom_et_prenom='"+txtnp.getText()+"' and Group='"+txtg.getText()+"' and Date_de_naissanse='"+date+"' and Responsable='"+txtr.getText()+"' and CIN='"+txtc.getText()+"' and Telephone='"+Integer.parseInt(txtt.getText())+"' and Adresse='"+txta.getText()+"' ";
try{
st=con.prepareStatement(sql);
rs=st.executeQuery();
if(rs.next()){
JOptionPane.showMessageDialog(null,"VOTRE COURRIER DEJA EXISTE");
}else{
String insert = "INSERT INTO `eleve_ps`(`ID`, `Nom_et_prenom`, `Group`, `Date_de_naissanse`, `Responsable`, `CIN`, `Telephone`, `Adresse`) VALUES (Null,'"+txtnp.getText()+"','"+txtg.getText()+"','"+date+"','"+txtr.getText()+"','"+txtc.getText()+"','"+Integer.parseInt(txtt.getText())+"','"+txta.getText()+"')";
try{
st=con.prepareStatement(insert);
st.executeUpdate();
this.setVisible(false);
}
catch(Exception e){
JOptionPane.showMessageDialog(null,e);
}
}
}
catch(Exception e){
JOptionPane.showMessageDialog(null,e);
}
}
그룹은 SQL 구문 (Group By)의 예약어입니다. insert 문에서했던 것처럼 백틱에 이름을 넣으십시오. –
당신은 'eleve_ms'가 아닌 'eleve_ms'가 필요합니다. – Subhiksh
동일한 원시 데이터를 다음 쿼리에 바로 붙여 넣을 경우 준비된 문을 사용해야하는 이유는 무엇입니까? – Ivar