mysql使用的是5.0,字库选的gbk源代码如下:
<%@ page language="java" contentType="text/html; charset=gbk"
pageEncoding="gbk"%>
<%@ page import="com.ty.sql.*" %><%
request.setCharacterEncoding("gbk");
String strId=(String)session.getAttribute("strId");
String monitor = (String)request.getParameter("monitor");
try{
monitor = new String(monitor.getBytes("gbk"),"ISO-8859-1");
}
catch(Exception e){
}
String query = "update article set monitor="+monitor+" where id =" +strId;
try
{
DataProcess.ExeQuery(query);//dataprocess为executeQuery()方法
}
catch(Exception e)
{
e.printStackTrace();
}
<%@ page language="java" contentType="text/html; charset=gbk"
pageEncoding="gbk"%>
<%@ page import="com.ty.sql.*" %><%
request.setCharacterEncoding("gbk");
String strId=(String)session.getAttribute("strId");
String monitor = (String)request.getParameter("monitor");
try{
monitor = new String(monitor.getBytes("gbk"),"ISO-8859-1");
}
catch(Exception e){
}
String query = "update article set monitor="+monitor+" where id =" +strId;
try
{
DataProcess.ExeQuery(query);//dataprocess为executeQuery()方法
}
catch(Exception e)
{
e.printStackTrace();
}
monitor = new String(monitor.getBytes("ISO-8859-1"),"gbk");
java.sql.SQLException: Unknown column 'qq' in 'field list'
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2975)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1600)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1695)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2998)
at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1071)
at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1005)
at com.ty.sql.DataProcess.ExeQuery(DataProcess.java:38)
at org.apache.jsp._111_jsp._jspService(_111_jsp.java:71)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)
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 'where id =12' at line 1
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2975)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1600)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1695)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2998)
at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1071)
at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1005)
at com.ty.sql.DataProcess.ExeQuery(DataProcess.java:38)
at org.apache.jsp._111_jsp._jspService(_111_jsp.java:89)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)
改成
String query="update article set monitor="+monitor+" where id='"+strId+"'";
有没有选择GB2312
如果没有话,
重新装一次,选择GB2312
java.sql.SQLException: Unknown column 'q' in 'field list'
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 'where id =13' at line 1
at java.lang.Thread.run(Unknown Source)mysql设置的字库是gbk,而且执行insert语句时就能插入汉字与英文,就是update的时候不行。
感谢达人们帮我解决一下这个问题,卡了很多天了。
为什么不用execute()?
executeQuery()是反回结果集吧?
public static void ExeQuery(String SQL){
Connection con = getConnection();//调用另外的连接数据库的类
try
{
Statement stmt = con.createStatement();
stmt.executeUpdate(SQL);
stmt.close();
con.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
如果你的strId是整型就不要那个单引号,但是monitor那里要