最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

database - Inserting data with Geometry field

programmeradmin0浏览0评论

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?

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?

Share Improve this question asked Aug 29, 2019 at 15:56 StripyTigerStripyTiger 2771 silver badge6 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 0

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.

发布评论

评论列表(0)

  1. 暂无评论