Inserting data with Geometry field

I am trying to insert data which contains a POINT field. I am using the $wpdb->insert method but when generating the SQL it is wrapping the POINT in quotes.

global $wpdb;
$table = $wpdb-base_prefix . 'points';

$Data = array(
    'Title' = $this-Title,
    'gPoint' = sprintf("POINT(%s,%s)",$this-Lng, $this-Lat),
    'Lat' = $this-Lat,
    'Lng' = $this-Lng
);

if (!$wpdb-insert($table,$Data))
    throw new Exception($wpdb-last_error);

This is the SQL generated. If I take the quotes from around the POINT field, the query will run.

INSERT INTO `wp_points` (`Title`, `gPoint`, `Lat`, `Lng`) VALUES ('My Marker', 'POINT(0.2566251,51.0581515)', '51.0581515', '0.2566251')

Is there a way round this?

Topic geo-data database Wordpress

Category Web


If you use the %s in your sprintf statement, $wpdb->insert() will automatically apply single-quotes.

You want to use %f for float, or %d for int/digit.

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.