2013-10-05 94 views
0

我嘗試將表單的地方信息保存到WAMP服務器數據庫中。我可以在phpmyadmin頁面中添加一個帶insert函數的表格。 但是當我insert以座標形式,並提交該將信息保存到數據庫中,我看到這個錯誤:錯誤:數據被截斷列'lat'

Data truncated for column 'lat' at row 1 

我定義我的表與此列:

place_id: int(10) 
p_name: varchar(50) 
lat: float(30,27) 
lng: float(30,27) 
addr: varchar(100) 
tel: int(12) 
category: varchar(15) 
description: varchar(200) 

座標我嘗試之一保存爲:

(47.61304128921687,-122.29001998901367) 

那(Lat)爲float(16,14) 什麼是可以在代碼中是錯誤的,只是lengt h的數據是錯誤的。

回答

1

您正在使用非標準語法來聲明FLOAT列。

http://dev.mysql.com/doc/refman/5.6/en/floating-point-types.html

儘量只宣佈這些列作爲FLOATDOUBLE。括號後面的數字不會影響數字的存儲,只是格式。

順便說一下,47.61304128921687僞裝成一個南北位置,精度約爲1.1納米。這顯然不是那麼精確。如果您正在使用商業級GPS,FLOAT對於您處理的數據具有很高的精度。如果你知道UTM和朗伯投影之間的區別,DOUBLE會做你需要的。

0

小數點後14位是不現實的。即使5 decimal places = 0.00001度=1.1132米(在赤道上)可能是無法實現的,

緯度

FLOAT(7,5)是能夠存儲任何與三位數字和五個小數,所以值可以存儲在LAT列範圍從-99.99999 99.99999(最大值)90 -90(皇家最大值)

經度

FLOAT(8,5)是能夠存儲任何值三位數字和五d因此可存儲在lng列範圍內的值爲-999.99999至999.99999(最大值)+180 -180(實際最大值)