示例(此请求是查询之前的回显):
INSERT INTO serveur (GSP_nom , IPserv, port, tickrate, membre, nomPays, finContrat, type, jeux, slot, ipClient, email)
VALUES ( 'ckras', '88.191.88.57', '37060', '100' , '', 'Allemagne','20110519', '2', '4','99' ,'82.220.201.183','foo@foo.com');
但是在MySQL上我有:
403 ckras 88.191.88.57 32767 100 Allemagne 20110519 1 2010-04-25 00:51:47 2 4 99 82.220.201.183 foo@foo.com
端口:37060(正确的值)//// 32767(MySQL的药物?)
任何帮助将不胜感激,我比卡住更糟糕,我****了
PS:*据我所知,mysql上没有触发器/端口上没有控件,这意味着我无处修改“ port”值
并且此脚本在80%的时间内都有效(似乎用户一旦输入端口> = 30000,就会导致该错误),用户今天首先向我报告了此错误,并且该脚本自3个月以来一直在运行*
谢谢
解决方法:
您可能正在为端口属性使用smallint数据类型.此数据类型的最大值为32767.
实际上,我已经复制了您的问题:
CREATE TABLE a(a smallint);
Query OK, 0 rows affected (0.09 sec)
INSERT INTO a VALUES (37060);
Query OK, 1 row affected, 1 warning (0.02 sec)
SELECT * FROM a;
+-------+
| a |
+-------+
| 32767 |
+-------+
1 row in set (0.00 sec)
您只需要使用更大的数据类型,例如mediumint或int.
进一步阅读:
> MySQL 5.1 Reference Manual: Numeric Types