首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码点火器避免将引号附加到值中

代码点火器避免将引号附加到值中
EN

Stack Overflow用户
提问于 2016-04-30 08:06:21
回答 1查看 418关注 0票数 0

我对代码点火器还不熟悉。我面临的问题是,我在数据库中存储一个值,代码点火器在我的值周围追加单引号,如果我的值周围有单引号,SQL server就不会存储它并提示错误。

我实际上是从这样的桌子上得到数据的

代码语言:javascript
复制
$this->db->select('priority, address, shape.STAsText() shape');
$this->db->from('POI');
$this->db->where("OBJECTID = '$id'");
$poi = $this->db->get()->row();

下一件事是,在将数据插入另一个表之前,我必须操作列shape的值。为此,我获取了shape对象的$poi属性,并按如下方式对其进行操作

代码语言:javascript
复制
$poi->shape =  "geometry::STGeomFromText('$poi->shape',4326)";

现在,当我尝试将这个$poi保存到数据库时,如下所示

代码语言:javascript
复制
$this->db->insert('poi_logs',$poi)

这个查询看起来像

代码语言:javascript
复制
INSERT INTO "poi_logs" ("priority", "address", "shape")
    VALUES
(6, 'Street 40 Margalla Town Phase 2 Islamabad', 'geometry::STGeomFromText(''POINT (73.106225740025934 33.668451250424937)'',4326)');

您可以看到它在shape值周围附加了单引号,还添加了单引号,在任何情况下,签名引号都在值中。我想避免这件事。我想要下面的声明

代码语言:javascript
复制
INSERT INTO "poi_logs" ("priority", "address", "shape")
    VALUES
(6, 'Street 40 Margalla Town Phase 2 Islamabad', geometry::STGeomFromText('POINT (73.106225740025934 33.668451250424937)',4326));

我环顾四周,却找不到任何解决办法。如果有人知道,请帮帮我

编辑的

如果我用

代码语言:javascript
复制
$poi->shape =  $this->db->escape("geometry::STGeomFromText('$poi->shape',4326)");

生成的查询如下

代码语言:javascript
复制
INSERT INTO "poi_logs" ("priority", "address", "shape" )
    VALUES
(6, 'Street 40 Margalla Town Phase 2 Islamabad', '''geometry::STGeomFromText(''''POINT (73.106225740025934 33.668451250424937)'''',4326)''')
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-02 11:13:23

试试这个:

代码语言:javascript
复制
$poi->address = $this->db->escape($poi->address);
$poi->shape =  "geometry::STGeomFromText('$poi->shape',4326)";
$this->db->set($poi, '', false);
$this->db->insert('poi_logs');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36952452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档