0

我有一个 MySQL 列“电话”,当数据来自我的 php 表单时,如果开头有一个零,它将在表中消失,例如:“ 06719823 ”变成“ 6719823

我首先虽然这是php的问题,因为我使用的是mysql_real_escape_string(),但后来我尝试直接在phpmyadmin上修改SQL字段,我无法添加第一个0,它总是删除它。

Colonne     Type     Interclassement    Attributs   Null    Défaut  Extra
phone       int(10)                                 Oui     NULL    

怎么了 ?我应该分配一个“类间” utf8_general_ci吗?

4

5 回答 5

4

将您的列类型更改char(10)为 10 位电话号码。

于 2012-05-11T12:13:00.043 回答
1

如果列类型是 int(整数),则数字将在内部表示为 integer,这意味着不会存储“前 0”,因为它们对整数没有意义。

由于您实际尝试存储的内容具有字符序列而不是数量的含义,因此将其存储为char(n)、n 位序列或varchar的序列更有意义大小变化很大。

于 2012-05-11T12:16:52.227 回答
0

将您的电话属性设为 Varchar 或 Text 以避免这种情况。

电话号码有时也可以包含括号和连字符,而且您也可以避免您的问题。

于 2012-05-11T12:13:38.873 回答
0

更改您的数据类型。Int 数据类型不会存储起始 0。

您可以按照上面的建议尝试 char 或 varchar

于 2012-05-11T12:14:43.033 回答
0
Integers : 06719823 = 6719823 = 0006719823

如果您想在开头保留零,请将电话另存为 varchar

于 2012-05-11T12:15:41.553 回答