Я хочу знать причину ниже кода
$this->db->select("DATE_FORMAT(`current_date`, '%M-%d-%Y' ) as date_human", FALSE);
Когда я использую приведенный выше код, он возвращает результат July-09-2015
Теперь я хочу знать, что такое использование FALSE
Потому что я получаю тот же результат, когда не добавляю FALSE.
Я упомянул [LINK] ( формат даты с воспламенителем codeigniter ). В этом, эксперт говорит, что это остановит CI от попыток автоматической защиты этих имен.
Изменить: когда я использую $this->db->last_query
, запрос, который я получаю, это:
SELECT *, DATE_FORMAT(current_date, '%M-%d-%Y' ) as date_human FROM `user_data` WHERE id = '57'
при использовании как FALSE, так и без FALSE.
Я хочу знать разницу, а также использовать FALSE. Направьте меня, чтобы продолжить.
Когда вы используете $this->db->select()
CodeIgniter автоматически защищает ваши имена столбцов.
Если вы установите значение FALSE
, CodeIgniter не будет пытаться защитить ваши имена полей или таблиц с помощью backticks
.
Это полезно, если вам нужен составной оператор select.
пример
$this->db->select('(SELECT SUM(payments.amount) FROM payments WHERE payments.invoice_id=4') AS amount_paid', FALSE); $query = $this->db->get('mytable');
Чтение CodeIgniter active_record.html#select
$this->db->select()
принимает необязательный второй параметр. Если вы установите значение FALSE
, CodeIgniter не будет пытаться защитить ваши имена полей или таблиц. Это полезно, если вам нужен составной оператор выбора, где автоматическое экранирование полей может их нарушить.
например
$this->db->select('(SELECT SUM(payments.amount) FROM payments WHERE payments.invoice_id=4) AS amount_paid', FALSE); $query = $this->db->get('mytable');
См. http://www.codeigniter.com/user_guide/database/query_builder.html.