在mysql中插入电话号码不起作用

在mysql中插入电话号码不起作用,mysql,Mysql,我在mysql中有一个表,用于将事件协调员(用于fest)注册为: 无论何时运行查询: INSERT INTO `coordinators` (eventid, name, phone, email) VALUES('1', 'abcdef', '8285066537', 'abcdef@xyz.com') 无论我尝试什么电话号码,如果长度>=9,mysql将其更改为4294967295 请帮忙 由于phone被定义为phone INT(10),整数不能放入代码中。错误在于您将手机置于引号中

我在mysql中有一个表,用于将事件协调员(用于fest)注册为:

无论何时运行查询:

INSERT INTO `coordinators` (eventid, name, phone, email) 
VALUES('1', 'abcdef', '8285066537', 'abcdef@xyz.com')
无论我尝试什么电话号码,如果长度>=9,mysql将其更改为
4294967295


请帮忙

由于
phone
被定义为
phone INT(10)
,整数不能放入代码中。错误在于您将手机置于引号中
'8285066537'

此外,查询中的引号中有
eventid
eventid
定义为
eventid INT

您的查询应该是

INSERT INTO `coordinators` (eventid, name, phone, email) 
VALUES (1, 'abcdef', 8285066537, 'abcdef@xyz.com')
更新1 关于
4294967295
,您必须将phone to定义为INT的最大范围为
4294967295
。因此您的号码
8285066537
四舍五入为
4294967295


如果您现在有任何问题,请告诉我。

将电话号码存储在数字字段中是行不通的。例如,您永远无法存储前导零或其他字符,如大括号或加号,这些字符通常用于指示区号和国家代码


电话号码应始终存储为varchar。

这是因为您对最大值为2^32-1(
2147483647
)的电话号码使用数据类型
int
)或
4294967295
如果未签名。您应该使用数据类型
varchar
作为电话号码。

ohh!!明白了。电话的数据类型必须是
BIGINT
,因为未签名INT的最大值为
4294967295
!:PDid您是否尝试增加INT数据类型上的数字?即INT(15)还是什么?是的…我把它改成20,但仍然没有工作。因为电话号码不是数学运算的主题,我同意VARCHAR更合适。毕竟,作为一个字符串,你可以做诸如区域代码或交换搜索之类的事情。尽管对于这些类型,YoWD甚至可以考虑拆分区域代码和其余部分。电话号码不是一个号码,它是一个发生在(通常情况下)的代码由数字字符组成。有时电话号码包括分机号码、特定国家/地区的格式、一些地方喜欢拼出他们的号码等。同样的情况也适用于邮政编码、SSN和其他看起来有点像号码的东西,它们不是号码,它们是字符串(主要是)包含数字字符。不。它仍然是
4294967295
。我想这是因为无符号整数的大小限制。啊,我没有注意到……您必须将
phone INT(10)
的数据类型更改为
phone BIGINT
。有关更多详细信息,请参阅……我也同意,尽管“永远不会工作”非常强大(Facebook价值数十亿美元,他们将手机储存为数字:)这是一个非常糟糕的选择,但我想现在很难改变它。同意-但大男孩仍然会犯错误。如果他们在设计facebook2时需要一些帮助,也许他们应该打电话给我们:)
INSERT INTO `coordinators` (eventid, name, phone, email) 
VALUES (1, 'abcdef', 8285066537, 'abcdef@xyz.com')