4

bigint を持つ 2 つのテーブルがあります。

table1
id bigint(20) PK autoincrement
name varchar(40),
text

table2
id bigint(20) PK autoincrement
created datetime
text_field
id_table1_ref bigint(20)

table1 にデータを挿入し、table1.id を table2.id_table1_ref に挿入しようとすると、番号が異なります。つまり、次のようになります。

table1.t1 の数値 1552545662588 は 1552545662、さらに悪いことに負の数値になります。

これは設定の問題であることはわかっていますが、これを管理する方法がわかりません。フィールドに符号付き/符号なしの値を設定しようとしましたが、うまくいきません。

これは私のUNIXローカルコンピューターで発生しており、サーバーでは少なくとも今のところすべて正常に動作しています。

どんな助けでも大歓迎です。

4

3 に答える 3

4

PHP に取り込む前に、SQL で文字列に変換する必要があります。PHP では、GMPを使用して数値を処理できます。

変換に関する MySQL ドキュメント: http://dev.mysql.com/doc/refman/5.7/en/cast-functions.html#function_convert

于 2013-05-04T15:29:01.140 に答える
-2

私はこの問題を別のphpバージョンに変更することで解決しました。つまり、64ビットのphpバージョンから32ビットのphpバージョンに変更しています。それは私にとって本当にうまくいきます。

于 2016-03-02T00:48:40.683 に答える