在codeigniter中使用DATE FORMAT时,在select query中放置FALSE有什么用?


what is the use of putting FALSE in select query when using DATE FORMAT in codeigniter

我想知道下面代码背后的原因

 $this->db->select("DATE_FORMAT(`current_date`, '%M-%d-%Y' ) as date_human",  FALSE);

当我使用上面的代码时,它返回结果July-09-2015,现在我想知道FALSE在这里的用途是什么。因为我在不添加FALSE的情况下得到了相同的结果。

我已经引用了[链接](日期格式与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保护字段或表名

当你需要一个复合选择语句时,这是很有用的。

例子
$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