MySQL вводит другое значение, которое дано PHP - PullRequest
3 голосов
/ 25 апреля 2010

Большая проблема: 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 нет триггера, насколько я знаю / Нет контроля порта, что означает, что нигде я не изменяю значение "порта"

и этот сценарий работает в 80% случаев (кажется, что как только пользователь входит в порт> = 30000, это вызывает эту ошибку), пользователь впервые сообщил мне об этой ошибке сегодня, и сценарий выполнялся с 3 месяцев *

Спасибо

Ответы [ 2 ]

3 голосов
/ 25 апреля 2010

Возможно, вы используете тип данных smallint для атрибута port. Максимальное значение этого типа данных 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.

Дальнейшее чтение:

1 голос
/ 25 апреля 2010

У меня была похожая проблема не так давно, я случайно обнаружил tinyint в поле, которое получило большое значение, вы должны проверить тип поля, которое вы используете. Также я рекомендую, чтобы, если проблема не устранена, попробуйте получить данные в виде строки.

Есть еще один способ, которым вы можете попытаться отследить проблему, попробуйте проверить журналы в MySQL на наличие возможных ошибок или переписать функции, которые вставляют данные в MySQL, иногда самая маленькая ошибка (которую часто трудно обнаружить) может испортить иначе фантастическое программное обеспечение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...