如何使用codeigniter在mysql几何列中插入多边形点?

Posted

技术标签:

【中文标题】如何使用codeigniter在mysql几何列中插入多边形点?【英文标题】:how do i insert a polygon point in mysql geometric column using codeigniter? 【发布时间】:2019-03-19 08:56:22 【问题描述】:

我的代码有什么问题?

$this->db->query("更新配置文件集多边形 = POLYGON((0 0,82 33,23 66,0 0)) 其中 id = 1");

polygon 是一个几何类型(多边形)的列。 我将这个“POLYGON((0 0,82 33,23 66,0 0))”粘贴到 phpmyadmin 的该列中,它已保存,但查询它不起作用

【问题讨论】:

POLYGON 会返回什么,您可以在这里显示吗?并尝试在您的查询中连接它 @M.Hemant 查询错误:您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,了解在 '0,82 33,23 66,0 0)) 附近使用的正确语法 你需要双 (( )) - 它不应该只是每个 1 吗? @Antony 我用单身父母试过了,但没用 【参考方案1】:

试试这个 - 它使用我喜欢的查询生成器(Codeigniter 的一部分)!!

$this->db->set('polygon','POLYGON(0 0,82 33,23 66,0 0)',false);
$this->db->where('id',1);
$this->db->update('profile');

注意false 阻止 CI 引用/转义您的查询。显然,如果您在那里接受用户提供的信息 - 那么必须在其他地方检查 SQL 注入或修改此查询。

【讨论】:

【参考方案2】:

我找到了答案

$this->db->query("update profile set polygon = ST_GeomFromText('POLYGON((0 0,82 33,23 66,0 0))') where id = 1");

【讨论】:

以上是关于如何使用codeigniter在mysql几何列中插入多边形点?的主要内容,如果未能解决你的问题,请参考以下文章

CodeIgniter 查询:如何将列值移动到同一行中的另一列并将当前时间保存在原始列中?

在 mysql 中设置一个唯一列并在 codeigniter 中显示 flashdata

使用 CodeIgniter 查询从同一列中选择多条记录

如何使用codeigniter 4框架在mysql数据库中插入多行?

如何使用mysql在codeigniter中计算总数

如何在 codeigniter 模型中使用 mysql 事件调度程序