2009-05-27 8 views
0

i écrit cette requête (en classe java) pour sélectionner des informations de la base de données MySQL et voir la page jsp ...Quelle est la cause de cette exception MySQLSyntaxError?

SELECT instructor.name de l'instructeur , section, enseigner OÙ enseigner. student_id = '3' et teach.section = section.number ET section.instructor_id = instructor.ID

mais il y a lieu était une exception!

javax.servlet.ServletException: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la syntaxe droit d'utiliser près » .student_id = « 3 'et teach.section = section.number ET section.instructor_id = ins » à la ligne 1

,,

par le chemin, je me l'écrire dans phpMyAdmin, et il y a du travail ..

serveur App: Sun GlassFish Enterprise server v2.1

s'il vous plaît aidez-moi ...

Cordialement

Répondre

6

Vous avez besoin d'un espace après le '3'.

+0

merci Alex .. i résolu le problème, je utiliser mauvaise façon d'écrire la requête en java. –

1

Il semble qu'il manque un espace. » .student_id = '3' et ->' .student_id = '3' ET

0

Si votre requête est exactement comme vous le montrer:

SELECT instructor.name FROM instructor,section,teach WHERE teach.student_id='3'AND 
    teach.section = section.number AND section.instructor_id= instructor.ID 

alors vous avez besoin d'un espace après le '3' et avant AND sur la première ligne montrée ci-dessus.

0

Quel est le type de données de "teach.student_id"? Est-ce numérique ou varchar. Si c'est numérique, pas besoin de mettre le '3' entre guillemets simples. par exemple. teach.student_id = 3

0

Merci pour tous

i était requête d'écriture en classe java comme ce

ResultSet rs = stmt.executeQuery ("SELECT instructor.name" + « de instructor, section, teach "+ " WHERE teach.student_id = "+" '"+ idd +"' "+ " ET teach.section = numéro de section ET section.instructor_id = instructor.ID ");

puis j'élimine toutes les lignes, et mettre la requête dans une ligne comme celle-ci, alors c'est résolu ...

Cordialement

+1

Vous devriez vous demander comment effectuer des requêtes paramétrées afin de ne pas avoir à gérer toutes ces manipulations de chaînes et de vous épargner de ces types de bogues. –

+0

Vous vous exposez à des attaques par injection SQL lorsque vous faites cela. Utilisez PreparedStatement. – svachon

Questions connexes