Ich poste einfach erst mal den Quelltext:
Wie man sieht....ein einfaches Formular, mit dem ein News-Eintrag in die Datenbank eingetragen werden soll. Wenn ich das Servlet jetzt aber aufrufe und die Felder (topic,inhalt) ausgefüllt habe und abschicke, dann kommt:
Kann es vielleicht sein, dass die Textarea nicht mit String zusammen funktioniert? Oder ist die Syntax falsch (hab zig Seiten durchsucht und scheint, dass meine eigentlich richtig ist)?
ach ja...in der Tabelle News_News gibt es noch eine Spalte "Datum". Wie bekomme ich es hin, dass das aktuelle Datum (des Servers?) automatisch auch eingetragen wird?
Thx für eure Hilfe!
Code:
import java.sql.*;
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
//import com.oreilly.servlet.multipart.*;
public class NewsSystemEingabe extends HttpServlet {
PrintWriter out ;
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws IOException {
out = response.getWriter();
response.setContentType("text/html");
out.println("<html><head><title></title></head>");
out.println("<body><center>");
out.println("<table border=\"0\">");
out.println("<form action=\"NewsSystemEingabe\" method=\"post\" name=\"formular\" enctype=\"application/x-www-form-urlencoded\">");
out.println("<tr><td><u>Topic:</u></td></tr>");
out.println("<tr><td><input name=\"topic\" type=\"text\" size=\"30\"></td></tr><tr></tr>");
out.println("<tr><td><u>Inhalt:</u></td></tr>");
out.println("<tr><td><textarea name=\"inhalt\" cols=\"30\" rows=\"10\"></textarea></td></tr>");
out.println("<tr><td><input type=\"submit\" value=\"Absenden\">");
out.println("<input type=\"reset\" value=\"Abbrechen\"></td></tr>");
out.println("</form>");
out.println("</body>");
out.println("</html>");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
final String host = "host";
final String database = "database";
final String user = "user";
final String password = "password";
String topic=request.getParameter("topic");
String inhalt=request.getParameter("inhalt");
out = response.getWriter();
String query = "INSERT INTO News_News(topic,inhalt) VALUES("+topic+","+inhalt+")";
try {
Class.forName ("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection ( "jdbc:mysql://"+host+"/"+database, user, password);
Statement stmt = conn.createStatement();
stmt.executeUpdate(query);
stmt.close();
conn.close();
}
catch (ClassNotFoundException e) { out.println("Can't load driver " + e);}
catch (SQLException e) { out.println("Database access failed " + e);}
}
}
Code:
Database access failed java.sql.SQLException: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'Nummer Irgendwas,Test-News Inhalt Test-News Inhalt.....Inhalt I
Kann es vielleicht sein, dass die Textarea nicht mit String zusammen funktioniert? Oder ist die Syntax falsch (hab zig Seiten durchsucht und scheint, dass meine eigentlich richtig ist)?
ach ja...in der Tabelle News_News gibt es noch eine Spalte "Datum". Wie bekomme ich es hin, dass das aktuelle Datum (des Servers?) automatisch auch eingetragen wird?
Thx für eure Hilfe!