不是服务器的问题.是你的字段值有问题.
公司主营业务:成都网站设计、成都做网站、外贸网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联建站是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联建站推出环翠免费做网站回馈大家。
Incorrect integer value: '$NewCity' for column 'NewCity' at row 1
//字段类型不匹配,表中这个字段设置为整形,你却给了一个字符串,根据实际情况修改字段或对提交过来的值做处理.
Data too long for column 'HirePayDate' at row 1
(1)可能是'HirePayDate' 的字段长度设置的太小,而提交过来的值超过长度.
(2)也可能是字段的编码不一致的问题.
解决:
(1)加大字段长度,记住一个如果是gbk/gb2312时中文占两个字节,在mysql中设置字段长度时,注意加大.
(2)设置数据库编码,使得插入的数据编码一致.
Field 'TypeOK' doesn't have a default value
没给这个字段的值,但这个字段又设置了not null(非空).
解决:如果不是每次都会提交该字段的值.请改字段设置,允许空.或设置默认值.
Field 'TypeOK' doesn't have a default value
============
如楼上所说,建议echo 出来你的sql,再查询分析器中执行.看看错在哪里.
public class MSUpdate {
private static DBSelect rid;
private static DBSelect idtype;
public void setDBSelect(DBSelect rid, DBSelect idtype){
this.rid=rid;
this.idtype=idtype;
}
public static void MSup(String[] args) {
MSDelete a=new MSDelete();
MSDelete b=new MSDelete();
DBSelect rid=new DBSelect();
DBSelect idtype=new DBSelect();
a.setDBSelect(rid);
b.setDBSelect(idtype);
MSConnection mysql = new MSConnection();
Connection con = mysql.getConnection();
PreparedStatement pst = null;
String sql = "update radius set username=?,value=?, where rid=" + rid + ",idtype=" + idtype;
try {
pst = con.prepareStatement(sql);
System.out.println("update");
pst.setString(1,"aaaa");
pst.setString(2, "12345");
pst.executeUpdate();
pst.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
错误:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 rid=sql.DBSelect@b166b5,idtype=sql.DBSelect@cdfc9c' at line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.Util.getInstance(Util.java:386)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1053)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4096)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4028)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2490)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2651)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2734)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2458)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2375)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2359)
at mysql.MSUpdate.MSup(MSUpdate.java:40):
在mysql的控制台,默认情况下是无法插入汉字。
你可以在mysql的控制台执行 set names gbk;
然后再插入数据看看,如果这样还不行的话,最好把sql语句放到一个文本文件中,然后在控制台中执行
source xxxx.sql;
这样应该是没有问题的
Mysql命令行中输错了,那么输入;或者\c退出,键盘上下按键调节代码重写修改。 如果是多行的,那么就要重新敲了。
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。
对table某行数据进行更新,发现修改不了数据,报错如下:
Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences - SQL Editor and reconnect.
原因是MySQL安全等级高,更新时不用主键当where语句,就会拒绝update。
写入Mysql语句:set sql_safe_updates =0;
之后再进行操作即可。