0
我是codeigniter的新手。我面臨的問題是我在數據庫中存儲了一個值,codeigniter在我的值附近添加了單引號,如果我的值附帶單引號,則SQL服務器不存儲它並提示錯誤。codeigniter避免將引號附加到值
實際上,我從表中獲取數據這樣
$this->db->select('priority, address, shape.STAsText() shape');
$this->db->from('POI');
$this->db->where("OBJECTID = '$id'");
$poi = $this->db->get()->row();
接下來的事情,我已經在這個數據插入到另一個表之前操縱列形狀的價值。爲此,我得到$poi
對象的shape
屬性和操作它就像下面
$poi->shape = "geometry::STGeomFromText('$poi->shape',4326)";
現在,當我嘗試這個$poi
保存到數據庫中像下面
$this->db->insert('poi_logs',$poi)
查詢看起來像
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
值附加單引號並且還添加了單引號這些標語引用來自內部的價值。我想避免這種情況。我想要像下面的語句
INSERT INTO "poi_logs" ("priority", "address", "shape")
VALUES
(6, 'Street 40 Margalla Town Phase 2 Islamabad', geometry::STGeomFromText('POINT (73.106225740025934 33.668451250424937)',4326));
我環顧四周,但找不到任何解決方案。如果有誰知道,請幫我
編輯
如果我使用
$poi->shape = $this->db->escape("geometry::STGeomFromText('$poi->shape',4326)");
得到的查詢看起來像
INSERT INTO "poi_logs" ("priority", "address", "shape")
VALUES
(6, 'Street 40 Margalla Town Phase 2 Islamabad', '''geometry::STGeomFromText(''''POINT (73.106225740025934 33.668451250424937)'''',4326)''')
非常確定這是因爲你的值被提取有(),並且這與PHP混淆,它需要逃避這些細節......你可以保存沒有()的?您是否嘗試將值輸出到您需要的位置,並在顯示時確定它是否存在問題? –
不,我需要在值 – muzaffar
@RejoanulAlam內追加'()'。是的,我試過這個但沒有成功。我已經更新了這個問題,請看看這是否是這樣,你說的是試試。 – muzaffar