2012-08-16 55 views
2

這裏是我(簡化)代碼將值插入表:php PDO和mysql:如何插入地理點類型?

function myInsert($pdo, $sql, $values) { 
    $pdo->prepare($sql); 
    foreach ($values as $key=>$value) { 
     $stmt->bindValue($key, $value); 
    } 
} 

myInsert(
    $pdo, 
    'INSERT INTO mytable (a,b,c) VALUES (:a,:b,:c)', 
    array(
     ':a' => 'valuea', 
     ':b' => 'valueb', 
     ':c' => 'valuec', 
    ) 
); 

什麼能正確'valuea'可能代表一個MySQL地理意義呢?

+0

我想知道這太... – tylerl 2013-05-13 17:47:27

回答

0

你應該遵循以下格式: POINT(a.latitude, a.longitude)

,但由於某種原因,我遇到了麻煩,這樣做,所以我乾脆重用:lat & :lng,我沒有任何麻煩,投入我的數據庫。當我的$newPosition = "POINT(" . $newlat . ", " . $newlng . ")";行在連接之前,我得到了一個HY000(無法連接到數據庫)錯誤,但有點PDO/SQL我不再需要打擾$ newPosition:

SET lat = :lat, lng = :lng, position = POINT(:lat, :lng)

0

使用

GeomFromText( '要點(1 1)')

$valuea = "$lat $lng"; 

GeomFromText('POINT($valuea)')", //Example: GeomFromText('POINT(31.95635 35.945843)') 

,並意識到該TA的ble色譜柱類型應該是類型的點

例子:

CREATE TABLE mytable(
    id int(11) NOT NULL AUTO_INCREMENT, 
    geo_point point DEFAULT NULL, 
    PRIMARY KEY (id), 
) 
+0

不錯的嘗試,但未能成功。 – 2013-09-01 08:07:59

+0

爲什麼失敗,請解釋 – Sawsan 2013-09-01 08:08:41

+0

哦,那很簡單。只是運行它,看看 – 2013-09-01 08:09:14