Я сохраняю значение в базе данных, и CodeIgniter неправильно заключает мое значение в одинарные кавычки. Если мое значение заключено в одинарные кавычки, то SQL-сервер не сохраняет его и выдает ошибку.
На самом деле я получаю данные из такой таблицы
$this->db->select('priority, address, shape.STAsText() shape');
$this->db->from('POI');
$this->db->where("OBJECTID = '$id'");
$poi = $this->db->get()->row();
Следующее: мне нужно манипулировать значением формы столбца перед вставкой этих данных в другую таблицу. Для этого я получаю атрибут shape объекта $poi и манипулирую им, как показано ниже
$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)');
Вы можете видеть, что он добавил одинарные кавычки вокруг значения формы, а также добавил одинарные кавычки там, где знаковые кавычки находятся внутри значения. Я хочу избежать этого. Мне нужно заявление, подобное приведенному ниже
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)''')
Подробнее здесь: https://stackoverflow.com/questions/369 ... -a-sql-ser