Мне нужно вставить значение POINT в мою таблицу MySQL, используя Fat Free Framework. Я надеялся сделать это с помощью F3 Mapper, но у меня сложилось впечатление, что это невозможно.
Поэтому я попытался использовать $ db-exec ()
Это мой текущий код, основанный на различных поисках здесь и в Google.
$geopoint = "POINT($lat $long)";
$db->exec("INSERT INTO event_dates ('eventGeoPoint') VALUES ($geopoint)");
Это выдает ошибку:
PDOStatement: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '52.8583742))' at line 1
Я также пытался
$db->exec("INSERT INTO event_dates ('eventGeoPoint') VALUES (GeomFromText($geopoint))");
Подскажите, пожалуйста, как правильно вставить значение POINT () в мою базу данных, используя Fat Free Framework, либо mapper, либо exec
Вы должны исправить свои INSERT
заявление, с которым вы смешались UPDATE
заявление.
INSERT INTO mytable SET myGeoPoint = 'GeomFromText($geopoint)
должно быть
INSERT INTO mytable(myGeoPoint) values (GeomFromText($geopoint))
Кроме того, вам нужно использовать подготовленный оператор, чтобы избежать SQL-инъекций.
Ища после комментариев @ Ravi, я нашел ответ в эта почта.
Я изменил свое заявление на
$result= $db->exec("INSERT INTO mytable (GeoPoint) VALUES (PointFromText(CONCAT('POINT(',$lat,' ',$long,')')))");
И это работает!