如何通过PDO将地理点数组添加到板条箱*


How to add geopoint array, via PDO to crate*

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

我正在尝试使用绑定将一组地理点放入数据库。

我已经尝试过每个,但似乎不起作用,我已经尝试过这个 - 这也不起作用。

地理点列设置为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();

如何将这组连接添加到数据库?

谢谢

GeoPoint 在 Crate 的 PDO 驱动程序中尚不支持作为本机类型,但您可以使用双数组。

从板条箱文档中:

带有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();

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();