2015-07-18 4 views
0

Я отправляю массив, который был передан из представления в контроллер (ajax-json). В контроллере, я собираю все из них в массиве, как это:Как избежать всех элементов массива из специальных символов при отправке в базу данных mysql

$to_update = array(
    'Name' =>$Name, 
    'qualification' =>$qualification, 
    'percentage' =>$percentage, 
    ); 

И я буду посылать это модель для вставки в к базе данных, и вызов, как

$result = $this->MODEL_NAME->FUNC_NAME($to_update); 

И в модели, они insered как,

$this->db->insert('table_name', $to_update); 

Теперь я должен убедиться, что SQL Injection будут обработаны должным образом и никакого вреда не происходит при вводе каких-либо специальных charecters от пользователя. Поэтому я должен предоставить функциональность ESCAPE массиву. У меня очень огромные массивы, подобные выше, сотнями элементов.

При сохранении сохраняется специальный charecter, но при извлечении будет проблема, и данные будут потеряны. Итак, где я должен заботиться о побеге, и как Любые предложения, пожалуйста.

ответ

3

Все методы построения запросов ActiveRecord like ,where, group, order, insert, update and so on, защищены от SQL injection AS LONG AS Вы не передаете им необработанные строки SQL.

CodeIgniter распознает, какой тип данных является вашей переменной, и оберните его соответствующим образом. То есть, если это строка, она будет помещать «и» вокруг экранированного значения в SQL, что необходимо для того, чтобы обеспечить, чтобы users can't inject anything malicious.

CodeIgniter - это полоса, сокращающая кавычки и уязвимые сценарии при использовании активных записей, а не запускать прямые SQL-запросы. Таким образом, нет никаких оснований для использования активных записей.

+0

Хорошо, но вместе с тем, я также хочу, чтобы данные были доступны пользователю. Например, если пользователь вводит «HELLL» «0 THERE», я должен быть в состоянии сохранить «HELLO THERE», и он должен быть извлечен, но теперь все будет сохранено, и при выборе будет выбрано только «HELL». путь – vikram

+0

перед тем, как вставить их в запрос: '$ var = $ this-> db-> escape ($ var);' – Saty

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

  • Нет связанных вопросов^_^