我已经设置了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 CratePDOPDO;
$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();