如何使用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