2016-04-30 1 views
0

Я новичок в кодеригере. Проблема, с которой я сталкиваюсь, заключается в том, что я храню значение в базе данных, а 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)''') 
+0

уверен, что это происходит из-за того, что ваши значения извлекаются() в нем, и это беспорядок с PHP, его нужно избегать этих подробностей ... Можете ли вы сохранить без()? Вы пытались вывести значения туда, где вам нужно, и посмотреть, действительно ли это проблема при его отображении? –

+0

нет, мне нужно добавить '()' в значение – muzaffar

+0

@RejoanulAlam .. Да, я пробовал это, но не добился успеха. Я обновил вопрос, пожалуйста, посмотрите, было ли это так, вы говорили, чтобы попробовать. – muzaffar

ответ

1

Попробуйте это:

$poi->address = $this->db->escape($poi->address); 
$poi->shape = "geometry::STGeomFromText('$poi->shape',4326)"; 
$this->db->set($poi, '', false); 
$this->db->insert('poi_logs'); 
Смежные вопросы