Я настроил crateio, и он работает нормально, используя класс PDO.
Я пытаюсь получить набор геопоинт в БД, используя привязки.
Я пробовал foreach, но, похоже, не работает, я пробовал это — что тоже не работает.
Столбец геопункта имеет значение 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 пока не поддерживается как собственный тип в драйвере PDO Crate, однако вы можете использовать двойной ARRAY.
Из документации ящика:
Столбцы с точкой 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();