3

这是我将值插入表的(简化)代码:

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 地理点?

4

2 回答 2

1

您应该遵循以下格式: POINT( a.latitude, a.longitude )

但由于某种原因,我在这样做时遇到了麻烦,所以我只是重用了:lat& :lng,我可以轻松地将其放入我的数据库中。当我的线路在连接之前,由于某种原因,我收到了一个 HY000(无法连接到数据库)错误$newPosition = "POINT(" . $newlat . ", " . $newlng . ")";,但是有了一点 PDO/SQL,我不再需要为 $newPosition 操心了:

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

于 2013-05-13T18:11:03.970 回答
0

采用

GeomFromText('POINT(1 1)')

$valuea = "$lat $lng";

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

并注意表列类型它应该是point的类型。

例子:

CREATE TABLE mytable(
    id int(11) NOT NULL AUTO_INCREMENT,
    geo_point point DEFAULT NULL,
    PRIMARY KEY (id),
)
于 2013-09-01T08:04:16.623 回答