MySQL输入PHP给出的另一个值

最大的问题:mysql不存储我通过PHP告诉他的信息

示例(此请求是查询之前的回显):

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

上一篇:如何从脚本中破坏Visual Studio 2010 JavaScript调试器


下一篇:如何在不访问硬件的情况下使用Android应用程序调试看似与硬件有关的问题?