今天发帖老一直报错:
SQLSTATE[22003]: Numeric value out of range: 1264 Out of range value for column 'arcrank' at row 1
原本以为是程序修改有问题,也恢复了数据库,但是依然问题存在,搞得头大,还好经过翻阅的有关资料。和各位老师的收藏,给与解决了 ,
时出现错误:
#1264 - Out of range value adjustedforcolumn'num'at row 1
原因:新版本的MySQL对字段的严格检查。 通常在Linux下安装完mysql后,默认的sql_mode值是空,在这种情形下mysql执行的是一种不严格的检查,如果要插入的字段长度超过列定义的长度,那么mysql不会终止操作,而是会自动截断后面的字符继续插入操作!但是在windows下面却不会这样。而是直接终止报出上面的错误!
解决方法(两种方法任选一种即可):1、修改my.ini,将
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
改为
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
重新启动MySQL。2、在执行sql语句前,先执行以下语句:mysql_query("set sql_mode=''");
3.修改mysql数据库表结构适应数据长度,最好的办法是修改配置文件。这样。平台差距就不会太大了!