如何通过PDO添加地理位置数组到crate *

时间:2014-12-16 11:29:32

标签: php pdo crate

我已经设置了crateio,并且使用PDO类工作正常。

我正在尝试使用绑定将一组地理位置输入数据库。

我试过foreach但似乎没有用,我试过这个 - 这也行不通。

geopoint列设置为geo_point_array。

$route="[[30.33333, -6.13336],[30.33333, -6.13336]]"; 

$db = new Database; 

$db->Query("insert into geopoints (id, longlat, name) values ('33',?,'pat')"); 

$db->bind(1, $route); 
$db->execute();

如何将这组坐标添加到db?

谢谢

2 个答案:

答案 0 :(得分:2)

Crate的PDO驱动程序中不支持

GeoPoint作为本机类型,但您可以使用双ARRAY

来自Crate文档:

  

使用double表示并插入带有geo_point的列   数组格式如下:[lon_value,lat_value]

我还强烈建议对其他值进行参数替换。

use Crate\PDO\PDO;

$route = [[30.33333, -6.13336], [30.33333, -6.13336]];

$db = new PDO('crate:...'); 
$stmt = $db->query("insert into geopoints (id, longlat, name) values (?, ?, ?)"); 

$stmt->bind(1, 33, PDO::PARAM_INT); 
$stmt->bind(2, $route, PDO::PARAM_ARRAY); 
$stmt->bind(3, 'pat', PDO::PARAM_STR); 

$stmt->execute();

答案 1 :(得分:0)

PDO::query返回PDOStatement

$route="[[30.33333, -6.13336],[30.33333, -6.13336]]"; 

//If Dateabase is a sublcass of PDO
//$db = new Database; 
$db = new PDO(...); 

$stmt = $db->query("insert into geopoints (id, longlat, name) values ('33',?,'pat')"); 

$stmt->bind(1, $route, PDO::PARAM_STR); 
$stmt->execute();