Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1.5K
Vistas
tiene un error en su sintaxis SQL; consulte el manual que corresponde a la versión de su servidor MariaDB para conocer la sintaxis correcta para usar cerca de ' ' en la línea 1

Intenté insertar los siguientes datos en la base de datos. pero me da lo anterior este error. tiene un error en su sintaxis SQL; Consulte el manual que corresponde a la versión de su servidor MariaDB para conocer la sintaxis correcta para usar cerca de ' ' en la Línea 1.

Intenté varias cosas pero no se soluciona.

 try{ Statement stat = Database.getStatement(); stat.executeUpdate("INSERT INTO"+" admission"+ " (a_id,sickness,recPhysicianDetails, admittedDate,Patient_ID,Doctor_id,Doctor_id1)"+" VALUES ('"+txt1.getText()+"', '"+txt7.getText()+"','"+txt8.getText()+"', '"+txt6.getText()+"', ( SELECT ID FROM patient WHERE Patient_name='"+txt3.getText()+"' ), ( SELECT ID FROM employee WHERE Name='"+txt9.getText()+"' ), ( SELECT ID FROM employee WHERE Name='"+txt10.getText()+"')" ); } catch(Exception e){ e.printStackTrace(); }
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

En su solución, las comillas ( ' ) no están colocadas correctamente, además falta un corchete de cierre al final. El uso de PreparedStatement se asegurará de que no tenga que preocuparse por las comillas, intente esto:

 Connection conn = //get connection PreparedStatement stat = conn.prepareStatement("INSERT INTO admission (a_id,sickness,recPhysicianDetails,admittedDate,Patient_ID,Doctor_id,Doctor_id1)" +" VALUES(?, ?, ?, ?, (SELECT ID FROM patient WHERE Patient_name = ?),(SELECT ID FROM employee WHERE Name = ?),(SELECT ID FROM employee WHERE Name = ?))"); stat.setString(1, txt1.getText()); stat.setString(2, txt7.getText()); stat.setString(3, txt8.getText()); stat.setString(4, txt6.getText()); stat.setString(5, txt3.getText()); stat.setString(6, txt9.getText()); stat.setString(7, txt10.getText()); stat.executeUpdate();
over 4 years ago · Santiago Trujillo Denunciar

0

Sugeriré usar una declaración preparada en lugar de llamar directamente al valor desde el cuadro de texto.

 try{ Statement stat = Database.getStatement(); stat.executeUpdate("INSERT INTO admission"+ "(a_id,sickness,recPhysicianDetails,admittedDate,Patient_ID,Doctor_id,Doctor_id1)"+ " VALUES('"+txt1.getText()+"','"+txt7.getText()+"','"+txt8.getText()+"','"+txt6.getText()+"',"+ "(SELECT ID FROM patient WHERE Patient_name='"+txt3.getText()+"'),"+ "(SELECT ID FROM employee WHERE Name='"+txt9.getText()+"'),"+ "(SELECT ID FROM employee WHERE Name='"+txt10.getText()+"')"); } catch(Exception e){ e.printStackTrace(); }

Aquí insertó algunas comillas dobles en lugares incorrectos, verifíquelo, debería funcionar.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda