2013-09-24 3 views
2

Я знаю, что codeigniter автоматически избегает символов, чтобы предотвратить возможные инъекции sql. Но как я могу сохранить строковое значение в базе данных с двойными кавычками на нем. Это возможно? Или есть функция или условие, которые могут игнорировать двойные кавычки и все еще хранить их в базе данных с использованием активных записей codeigniter? Я попытался сохранить двойную кавычку в базе данных, но не смог сохранить это значение. Например. Я хочу сохранить это значение «Компьютерный курс» в базе данных, используя переменную $course_desc, но в поле описания в моей базе данных ничего нет. Как я мог бы это сделать? Вот моя модель активной записи код для вставки значений:Как вставить двойное кавычное строковое значение в базу данных с помощью активных записей с помощью codeigniter?

Модель:

public function insert_file($filename,$course_name,$course_desc,$tennant_email,$is_public,$concat_url) 
{ 
    $data = array(
    'course_id'  => '', 
    'tennant_id' => $tennant_email, 
    'display_public'=> $is_public, 
    'course_name' => $course_name, 
    'course_desc' => $course_desc, 
    'private_url' => $concat_url, 
    'filename'  => $filename 

      ); 

     $this->db->insert('courses', $data); 
     return true; 
    } 
+0

Запросы с AR являются AUTOMA tically escaped, поэтому кавычки не должны быть проблемой. Если вы var_dump ($ data), это значение заключено в кавычки? –

+0

Учитывая ваши данные образца, это должно работать так, как есть. что $ this-> db-> insert ('courses', $ data); вернуть? Попробуйте поместить это как следующую строку: echo $ this-> db-> last_query(); – allen213

+0

, пожалуйста, напишите свой запрос. Если вы используете двойные кавычки в описании, тогда он должен работать. Нет проблемы с этим. – ABorty

ответ

1

Просто сделайте переменную, как это ниже,

$data = array('course_desc' => '"'.$course_desc.'"') 

Пожалуйста, дайте мне знать, помогает ли это.

0

Если у Вас возникли проблемы по вставке данных в двойные кавычки ("), я предлагаю вам попробовать использовать замены. Например:

$data = array(
    'course_id'  => '', 
    'tennant_id' => $tennant_email, 
    'display_public'=> $is_public, 
    'course_name' => $course_name, 
    'course_desc' => str_replace('"','xxxxx',$course_desc)), 
    'private_url' => $concat_url, 
    'filename'  => $filename 

      ); 

     $this->db->insert('courses', $data); 

и наоборот при выборе/получение на нем в базе данных .

Я надеюсь, что это поможет.

0

Вы можете использовать '\'

$data = array(

    'course_desc' => "\"$course_desc\"" 

} 
Смежные вопросы