Если вы используете класс Active Record для взаимодействия с БД, данные будут автоматически экранированы:
Помимо простоты, основным преимуществом использования функций Active Record являетсячто он позволяет создавать независимые от базы данных приложения, поскольку синтаксис запроса генерируется каждым адаптером базы данных.Это также позволяет выполнять более безопасные запросы, так как значения автоматически экранируются системой.
Если нет, и вы выполняете запросы вручную, вам нужно будет их избежать самостоятельно.
Несколько советов по вашей функции:
public function view( $id )
{
$this->load->model('news_model');
$this->news_model->get_by_id( $id );
// ...
}
Если $id
отсутствует в URL, вы получите уведомление об ошибке.Установите значение по умолчанию:
public function view( $id = NULL )
Затем проверьте значение в вашем контроллере.Пример:
if ( ! $id)
{
redirect('somwhere/else');
}
Кроме того, убедитесь, что вы получили результат, прежде чем продолжить (я предполагаю, что ваша модель возвращает false
здесь, если запись не найдена):
$record = $this->news_model->get_by_id( $id );
if ( ! $record) // redirect with error message or something
Можно проверитьтип или целостность $id
столько, сколько вы хотите, но для простоты я бы просто передал это модели и вернул false
, если запись не была найдена.