2010-04-24 29 views
3

的一個大問題:MySQL不存儲信息,我告訴他要通過PHP的MySQL進入另一個值,該一個由PHP給出

實例(此req迴音就在查詢之前):

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','[email protected]'); 

但在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 [email protected] 

端口:37060(右VALU ?E)//// 32767(MySQL的藥物)

任何幫助,將不勝感激,我比卡糟糕,我****關

PS:*沒有觸發在mysql上據我所知/ 端口上沒有控制權,這意味着無處修改「端口」值

並且此腳本在80%的時間內工作(似乎只要用戶輸入端口> = 30000導致該錯誤),用戶今天首次向我報告此錯誤,並且腳本自3個月起運行*

謝謝

+0

嘗試更改您的端口列的數據類型,讓說..到整數。 – 2010-04-24 23:42:08

回答

3

您可能在port屬性中使用了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) 

只需將必須使用較大的數據類型,如mediumintint

延伸閱讀:

+0

你是對的:我用smallint(5)。我認爲添加(5)將處理0和99999之間的每個數字 謝謝! – 2010-04-24 23:42:19

1

我有一個類似的問題,不久前,我不小心有TINYINT在收到一大值的字段,你應該檢查字段的類型你正在使用。另外我建議如果問題仍然存在,請嘗試以字符串形式獲取數據。

還有更多的方法可以嘗試跟蹤問題,嘗試檢查MySQL中的日誌是否存在任何可能的錯誤,或者重寫將數據插入到MySQL中的函數,有時候最小的錯誤(通常很難發現)會毀掉一個奇妙的軟件。

+0

謝謝,我正在使用smallint – 2010-04-24 23:43:51

+0

當然沒有問題,偶爾發生在每個人身上:) – Ozmah 2010-04-24 23:45:16

相關問題