1

データベースにエントリを挿入しようとしましたが、選択クエリで異なる結果が得られました。

INSERT INTO  `mobilpay_sms_log` (
        `id` ,
        `messageid` ,
        `user` ,
        `sms_key` ,
        `sender` ,
        `final_value` ,
        `brute_value` ,
        `message` ,
        `code` ,
        `status` ,
        `time`
        )
        VALUES (
        NULL ,  '20130814195225:0721254789',  '0',  '10752000000',  '0721547896',  '10.00',  '10.00',  'LICENTA 111',  '8A5SSVPQ',  'FINISHED', 
        '20130814195225'
        );

選択後、「sms_key」フィールドから「2147483647」という奇妙な値を取得します。sms_key 構造体は int(20)

4

1 に答える 1

2

これは、int がその大きな数値を格納できないためです。long int または単に varchar に格納する必要があります。MySQL の整数サイズに関する詳細情報は次のとおりです。

http://dev.mysql.com/doc/refman/5.0/en/integer-types.html

列仕様の数 (20) は、列に格納できる文字数のみを制限します。

さらに、電話番号を整数として保存することには細心の注意を払っています。理由の詳細:

電話番号を表す正しい方法は何ですか?

送信者の列にこのような問題が発生する可能性があると思います。

于 2013-08-17T19:57:33.023 に答える