2012-08-16 51 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